2011-02-25 52 views
9

我可以在Linux內核中使用OpenGL嗎?也就是說,我想提高一些代碼的性能,所以使用GPU對另一個驅動程序會有好處。可以肯定的是,GPU將固定在內核將要構建的機器上。能否在內核中使用OpenGL?

對不起,如果我聽起來天真,我只是想得到一個現在的總體情況。

謝謝!

回答

4

不,你不能,最大的原因是你不能在內核中使用浮點數學。除此之外,從內核中訪問這樣的驅動程序是一個非常糟糕的主意。我不知道內核是否甚至能夠鏈接到一個用戶模式庫(libGL.so或libOpenCL.so)。

+2

在內核模式下使用FPU是可能的,但它非常困難和乏味。通常它不應該是必要的。不幸的是,我最近不得不處理一些設備,這需要我在內核模塊* gah *中進行浮點運算。 – datenwolf 2011-02-25 16:16:25

+0

謝謝你們。我仍然想知道是否可以從內核中加載opengl庫。 :-) – 2011-02-27 13:51:55

+2

@阿爾布斯鄧布利多:不,這是不可能的。用戶空間庫期望的是完全不同的環境,而不是內核中可以找到的環境。 – datenwolf 2011-03-09 17:27:14

5

OpenGL是用於在屏幕上顯示3D的,我真的不知道你想在內核中以何種方式使用它。如果你的意思是使用GPU的計算能力進行某些計算,我認爲它在內核的某些部分是可行的,但我懷疑這是否值得這樣做。

+0

我正在考慮做一些GPGPU編程,即流處理。 – 2011-02-25 09:16:53

+1

@Albus Dumbeldore:爲什麼在內核中這樣做?人們希望儘可能少地花費在內核模式上。 – datenwolf 2011-02-25 09:22:02

+0

嗯,是的,但據我瞭解,它將成爲我需要修改的設備驅動程序的一部分。 – 2011-02-25 09:28:47

3
  • GPUs根本無法像您想象的那樣工作。
  • 你想加速什麼?只是一些標準的計算?內核代碼不會比用戶空間代碼運行得更快!其實有些東西甚至更慢。
  • 你知道,即使在內核中使用浮點單元(FPU)也非常平庸而且不鼓勵。
  • GPU計算不是一個神奇的子彈。
+0

感謝您的好建議!我試圖實現的是實現一些代碼,如果使用流處理範例實現,將會更高效。 – 2011-02-25 09:27:31

+0

那麼這件事會做什麼?驅動程序使用哪種硬件。什麼樣的數據。 – datenwolf 2011-02-25 10:57:52

+0

我只關心在內核中調用OpenGL是否可行和可行。 – 2011-02-25 11:55:47