La GPU de mi Radeon no funciona en Linux

Klópes - 21/06/2020 20:40
Al grano. Tengo una Radeon RX 570 y Linux Mint. Me he instalado desde hace un año, cuando me la compré, todos los drivers posibles que he ido pillando, y configurando todas las tonterías que he ido leyendo por las páginas, y NUNCA nunca he conseguido que en Blender se activara el render por GPU. De hecho, hasta creo que esos dos ventiladores no han dado una sola vuelta todavía. ¿Alguien me ayuda? Creo que nadie más en la Tierra tiene este problema, así que casi me daba vergüenza preguntar aquí. Pero ya veis, compañeros, lo mío no es el hardware.
Soliman - 21/06/2020 21:31
¿Pero te refieres a Blender o solo a la gráfica y Linux?
Klópes - 22/06/2020 09:49
Pues no lo tengo claro, porque todo funciona bien pero no he usado otros programas para comprobar la aceleración. El caso es que en Blender no me deja seleccionar la GPU, en las preferencias me dice "No compatible GPUs found". Creo que mi chip está en la lista famosa de las que usa Blender, pero ni por esas.

He probado con un escenario del Unigine, me da buenos resultados, me detecta por supuesto la GPU y supongo que la está usando. Esto me dice:

[TABLE="class: detail"]
[TR]
[TD="class: right"]Binary:[/TD]
[TD]Linux 32bit GCC 4.3.2 Release May 20 2010
[/TD]
[/TR]
[TR]
[TD="class: right"]Operating system:[/TD]
[TD]Linux 4.15.0-106-generic x86_64[/TD]
[/TR]
[TR]
[TD="class: right"]CPU model:[/TD]
[TD]AMD A10-7890K Radeon R7, 12 Compute Cores 4C+8G[/TD]
[/TR]
[TR]
[TD="class: right"]CPU flags:[/TD]
[TD]4092MHz MMX+ SSE SSE2 SSE3 SSSE3 SSE41 SSE42 SSE4A SSE5 HTT[/TD]
[/TR]
[TR]
[TD="class: right"]GPU model:[/TD]
[TD]Radeon RX 570 Series (POLARIS10, DRM 3.36.0, 4.15.0-106-generic, LLVM 9.0.0) 3.2 (Compatibility Profile) Mesa 19.3.4 8192Mb[/TD]
[/TR]
[/TABLE]

Así que, como dices, puede que sea sólo Blender el que no la detecta. He instalado un addon que viene en la página de AMD llamado ProRender, pero no funciona porque dice que no encuentra la librería libGL.

No sé. O es una chorrada en la que no caigo, o pierdo ya la esperanza.
Soliman - 22/06/2020 11:43
En las últimas actualizaciones de Blender (2.9) vienen mejoras para las AMD, pero no sabría decirte, pues nunca he tenido un AMD. :)

Prueba con la 2.9 que aunque esté en Alpha parece funcionar perfectamente. [URL]https://builder.blender.org/download/[/URL]
Klópes - 22/06/2020 13:48
Gracias, probado.

Pero no :quelAlgo tiene que faltar por configurar.
Neo_one - 23/06/2020 22:32
También me pasa con una Apu A6, una R530 y con la HD 5430. Me van todas con versiones previas a la 2.8, pero fue cambiar y no reconoce ninguna ni de casualidad.
AlphaCAD - 24/06/2020 19:08
Hola compañero. A ver si esto te sirve: :)

[URL]https://blender.stackexchange.com/questions/151180/enabling-opencl-gpu-rendering-for-cycles-on-linux[/URL]

Echa un vistazo a este vídeo explicativo:

[URL]https://www.youtube.com/watch?v=ba71RX5Hr9w[/URL]

Es para Ubuntu pero como sabes Linux Mint parte de Debian / Ubuntu así que debería servirte.
Klópes - 25/06/2020 09:25
Vaya, esto no son buenas noticias (no me doy mucha maña con la cuestión de las versiones del kernel), no recuerdo haber visto esta información. Muchas gracias, intentaré hacerlo.
Klópes - 26/06/2020 18:06
¡Buenas!
Y buenas noticias. Al final la cuestión era que tenía que instalar la versión completa del driver, no la estándar. Ahora me permite acelerar con OpenCL. La razón por lo que no lo había hecho es porque ya lo intenté hace tiempo, con versiones anteriores de Blender (no recuerdo cuál, fue hace más de 1 año) y no funcionó entonces, así que mi cabeza ignoró esta posibilidad también ahora. Temía que tuviera que degradar el núcleo o algo, pero no ha hecho falta.
En resumen, que me pasa lo contrario a Neo One, y otros casos que he leído por internet.
Ahora tengo una pregunta. Esto es lo que me aparece:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #234261



¿Alguien sabe qué hacen estas opciones, y por qué la tercera está desactivada por defecto?

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #234261

AlphaCAD - 27/06/2020 15:22
Pues la verdad es que no lo sé.

Pero lo que sí está claro es que la tercera opción hace referencia al procesador, así que entiendo que está programado para que utilice por defecto OpenCL utilizando la gráfica tal y como está marcado. :)
Klópes - 28/06/2020 17:44
Entendido, gracias :cool:
Neo_one - 10/07/2020 14:56
No entiendo bien eso de "instalar la versión completa del driver". Hace tiempo probé a reinstalar el controlador desde cero y no había manera, incluso instalando las librerías desde la página de Open-CL.
La verdad es que me da la sensación que Blender está muy dejado en cuanto a Opencl se refiere, porque tampoco lo detecta con mi GTX 750.
Klópes - 21/07/2020 12:43
[QUOTE=Neo_one;989899]No entiendo bien eso de "instalar la versión completa del driver". Hace tiempo probé a reinstalar el controlador desde cero y no había manera, incluso instalando las librerías desde la página de Open-CL.
La verdad es que me da la sensación que Blender está muy dejado en cuanto a Opencl se refiere, porque tampoco lo detecta con mi GTX 750.[/QUOTE]

Perdón por la tardanza.
Cuando instalas el driver de AMD, por defecto con la orden amdgpu-install sólo se instala el funcionamiento básico, sin componentes de aceleración. Para otras mandangas necesitas poner argumentos como:
[TABLE="class: docutils"]
[TR="class: row-odd"]
[TD]Option[/TD]
[TD]Description[/TD]
[/TR]
[TR="class: row-even"]
[TD]--opencl=pal[/TD]
[TD]Installs PAL OpenCL.[/TD]
[/TR]
[TR="class: row-odd"]
[TD]--opencl=legacy[/TD]
[TD]Installs legacy OpenCL.[/TD]
[/TR]
[TR="class: row-even"]
[TD]--opencl=pal,legacy[/TD]
[TD]Installs both PAL and legacy OpenCL.[/TD]
[/TR]
[/TABLE]
Y luego, para lo que llama All-Open, puedes usar el script amdgpu-pro-install, o sea, el completo, que se supone que hace estas cosas:
[TABLE="class: docutils"]
[TR="class: row-odd"]
[TD]Command
[/TD]
[TD]Installed Components[/TD]
[/TR]
[TR="class: row-even"]
[TD]$ ./amdgpu-pro-install -y[/TD]
[TD]

[/TD]
[/TR]
[TR="class: row-odd"]
[TD]$ ./amdgpu-pro-install -y --opencl=pal,legacy[/TD]
[TD]

[/TD]
[/TR]
[TR="class: row-even"]
[TD]$ ./amdgpu-pro-install -y --opencl=pal,legacy --headless[/TD]
[TD]

[/TD]
[/TR]
[/TABLE]

Al final lo he tenido que quitar el driver y dejar el nativo porque se cuelga como un murciélago, cuelgue de congelación TOTAL, de no mover ni el ratón, y de hecho cada vez más. No sé si es la tarjeta o qué, pero ahora estoy como al principio.
3dpoder - 24/07/2020 21:56

Al final lo he tenido que quitar el driver y dejar el nativo porque se cuelga como un murciélago, cuelgue de congelación TOTAL, de no mover ni el ratón, y de hecho cada vez más. No sé si es la tarjeta o qué, pero ahora estoy como al principio.



Caramba, pues sí que está complicado el tema, es extraño que no haya una opción que instale directamente lo necesario dependiendo de tu hardware, extraño a estas alturas quiero decir.
Neo_one - 04/08/2020 20:02
Pues vaya decepción.

Prueba a poner el plugin de AMD Pro Radeon Render.

Yo tengo pensado seriamente actualizar a una Apu 4700G y usar su igp, y ya tengo asumido que me puedo ir olvidando porque solo la usaré para el Viewport.

Y todo esto viene por los precios exorbitantes que tienen las GPU de Nvidia.
Neo_one - 14/08/2020 09:58
He localizado esta información que podría ser útil.

[URL]https://blender.stackexchange.com/questions/81916/why-cant-i-use-gpu-rendering-in-blender[/URL]

Estoy bastante sorprendido por la cantidad de información falsa que hay aquí.

En primer lugar, Intel es compatible con OpenCL, por lo que puedo ver hasta 2.1. No sólo esto, sino que tengo experiencia de campo trabajando con OpenCL en APUs de Intel. La implementación funciona, y funciona bien y acelerará su procesamiento de la misma manera que cualquier otra tecnología de computación GPGPU lo haría.

Los gráficos integrados (incluyendo la inteligencia.) ofrecen los mismos tipos de beneficios de rendimiento que uno encontraría en los gráficos discretos. También tienen algunas ventajas porque están en el mismo dado. Los GPU recientemente integrados son capaces de realizar operaciones de copia cero, lo que significa que no están limitados por el ancho de banda de la misma manera que con las GPU dedicadas. Las modernas GPU integradas pueden acceder al mismo espacio de direcciones que su CPU, en OpenCL liberan y adquieren esta memoria de forma similar a como se hace con el streaming DMA desde el host a los dispositivos en CUDA/OpenCL. De esta manera, a menudo puedes obtener más velocidad con ciertos tipos de procesamiento SIMD por lotes que con una tarjeta discreta.

Además, estas GPU integradas no tienen una arquitectura nueva nunca antes vista, las propias GPU integradas de AMD hoy en día se basan en su línea de gráficos discretos, y las APU modernas utilizan GCN para su arquitectura de gráficos integrados. Usas los controladores GCN tanto si estás usando un 580 como si tu APU de AMD tiene gráficos integrados. La ventaja es que aquí hay una imagen de cómo son los gráficos integrados.

El problema aquí es que Blender no soporta todas las implementaciones de OpenCL o más bien, debido a que Blender tiene código OpenCL que utiliza para el renderizado, el código en sí no es independiente de la plataforma.

Si quieres una solución a esto, se hizo otra pregunta aquí que afirmaba que puedes forzar el uso de la implementación nativa de OpenCL incluso si no tienes una GPU AMD. Tengan en cuenta que tengo dudas de que esto funcione en absoluto.

Cuando mencioné que la implementación no era independiente de la plataforma, hay pocas cosas que tienes que saber sobre OpenCL.

OpenCL tiene muchas extensiones. Tantas que puede ser un dolor de cabeza hacer aplicaciones multiplataforma en OpenCL, ya que muchas de estas extensiones son muy específicas de cada proveedor.

OpenCL es la sigla de Open Compute Language (Lenguaje Abierto de Computación), y su principal propósito es el procesamiento heterogéneo, en el que muchos de ustedes tienen múltiples dispositivos cuyo proveedor no coincide, pero todos admiten alguna especificación de OpenCL, lo que les permite controlar y lanzar programas en cada dispositivo desde un host. OpenCL no es un estándar específico de la GPU como lo es CUDA. El hecho de que algo sea compatible con OpenCL no significa claramente que cualquier programa pueda ejecutarse en cualquier dispositivo. Diablos, incluso el Steamlink soporta OpenCL, ¿crees que serías capaz de renderizar en Blender en uno de esos?

Incluso entre las GPU, ignorando OpenCL hay muchas peculiaridades específicas de los proveedores en cuanto a su funcionamiento. Cosas como el tamaño del frente de onda/warp, o el tamaño de la memoria del banco no sólo cambian de un proveedor a otro, sino que también pueden cambiar del mismo proveedor. También tienes que tener en cuenta cosas como la fusión de la memoria, que tu GPU puede o no tener utilidades para ayudar (Nvidia solía tomar la memoria en trozos para ayudar con esto, y mientras tu memoria estuviera agrupada en la RAM las cosas no eran tan malas comparadas con el acceso no secuencial).

Sospecho que Blender nunca podrá añadir soporte para Intel OpenCL, por el esfuerzo y la falta de potencia de sus GPU integradas en comparación con las tarjetas discretas. No ayudaría a la mayoría de sus usuarios, y ciertamente no a sus usuarios principales.

Traducción realizada con la versión gratuita del traductor www.DeepL.com/Translator
3dpoder - 16/08/2020 14:01
Muchas gracias por la información, parece que es el propio Blender quien tiene el problema en su código, a ver si lo solucionan.
3dpoder - 24/08/2020 12:50
Bueno pues hay noticias sobre el tema, se actualiza AMD Radeon ProRender para varios programas, incluyendo Blender trabajando sobre Linux, y otros como Houdini, Autodesk Maya y Unreal Engine, es cuestión de probar si este funciona.

[URL]https://foro3d.com/f20/nuevo-sdk-para-radeon-prorender-141148.html[/URL]