2011-02-25 19 views
9

¿Puedo usar OpenGL en el kernel de Linux? Es decir, me gustaría mejorar el rendimiento de algunos códigos, por lo que usar la GPU sería beneficioso para otro controlador. Es seguro que la GPU se fijaría en la máquina para la que se construiría este kernel.¿Se puede usar OpenGL en Kernel?

Disculpa si parezco ingenua, solo estoy tratando de obtener una visión general por el momento.

Gracias!

Respuesta

4

No, no se puede, la razón principal es que no se puede usar la matemática de coma flotante en el kernel. Además de eso, acceder a dicho controlador desde dentro del kernel es una muy mala idea. No sé si el kernel puede incluso vincularse a una biblioteca de modo de usuario (libGL.so o libOpenCL.so).

+2

Es posible usar la FPU en modo kernel, pero es increíblemente difícil y tediosa. Y generalmente no debería ser necesario. Desafortunadamente tuve que lidiar con algún dispositivo recientemente, lo que me obligó a hacer operaciones de coma flotante en el módulo kernel * gah *. – datenwolf

+0

Gracias chicos. Todavía me pregunto si es posible cargar la biblioteca opengl dentro del kernel. :-) –

+2

@Albus Dumbledore: No, no es posible. Las bibliotecas de espacio de usuario esperan un entorno completamente diferente al que se puede encontrar en el kernel. – datenwolf

5

OpenGL es para mostrar 3D en la pantalla, realmente no sé de qué manera desea usarlo en el kernel.

Si se refería a usar la potencia computacional de la GPU para algunos cálculos, creo que sería factible en algunas partes del kernel, pero dudo que valga la pena.

+0

Estoy pensando en hacer algo de programación GPGPU, es decir, procesamiento de flujo. –

+1

@Albus Dumbeldore: ¿Y por qué esto en el kernel? Uno quiere pasar el menor tiempo posible en modo kernel. – datenwolf

+0

Um, sí, pero por lo que yo entiendo correctamente, será parte de un controlador de dispositivo que necesitaré modificar un poco. –

3
  • Las GPU simplemente no funcionan de la manera que te imaginas.
  • ¿Qué quiere acelerar? ¿Solo un cálculo estándar? ¡El código del kernel no se ejecuta más rápido que el código de espacio del usuario! En realidad, algunas cosas son incluso más lentas.
  • Usted sabe que incluso el uso de la unidad de punto flotante (FPU) en el núcleo es altamente no trivial y desaconsejable.
  • La computación GPU no es una bala mágica.
+0

¡Gracias por los buenos consejos! Lo que intento lograr es implementar algún código que sea más eficiente si se implementa utilizando el paradigma de procesamiento de flujo. –

+0

Entonces, ¿qué hará esto? Para qué tipo de hardware es ese controlador. Qué tipo de datos. – datenwolf

+0

Solo estoy interesado en si es posible y factible invocar OpenGL desde Kernel. –

Cuestiones relacionadas