Radeon RX 580 e OpenCL

Discussioni sulla compatibilità dell'Hardware con linux, Drivers, ...

Radeon RX 580 e OpenCL

Messaggioda SgobbiT » 05/12/2017, 16:58

Ciao,
sto avendo problemi a far funzioare OpenCL su Debian Buster, nello specifico l'applicazione che lo usa mi da "segmentation fault", ho provato applicazioni diverse quindi penso che il problema sia in qualche libreria o compilatore opencl...

La scheda è una Radeon RX 580

Il driver dovrebbero essere a posto, la scheda la uso per la codifica hardware dei video (VCE) e quella parte va, di seguito quello che mi riporta "clinfo"
https://pastebin.com/TgNMBXZT
Avatar utente
SgobbiT
Jr. Member
Jr. Member
 
Messaggi: 78
Iscritto il: 02/11/2005, 14:39

Re: Radeon RX 580 e OpenCL

Messaggioda Spoon » 06/12/2017, 16:45

Ciao,
premetto che non ho mai messo le mani su OpenCL anche se mi affascina molto. Provo ad aiutarti lo stesso, nonostante le competenze limitate, nella speranza di poter comunque dare una mano e magari imparare qualcosa :)

La prima cosa che noto dal log che hai inviato è la discrepanza tra la versione di OpenCL supportata dalla scheda e quella a cui si conforma l'ICD:
Codice: Seleziona tutto
Device Version                                  OpenCL 1.1 Mesa 17.2.5
Device OpenCL C Version                         OpenCL C 1.1
ICD loader Profile                              OpenCL 2.1

Potrebbe forse essere questa la causa del segmentation fault?
Spoon
wiki member
wiki member
 
Messaggi: 309
Iscritto il: 23/11/2013, 14:37

Re: Radeon RX 580 e OpenCL

Messaggioda SgobbiT » 07/12/2017, 13:45

Spoon ha scritto:La prima cosa che noto dal log che hai inviato è la discrepanza tra la versione di OpenCL supportata dalla scheda e quella a cui si conforma l'ICD:
Codice: Seleziona tutto
Device Version                                  OpenCL 1.1 Mesa 17.2.5
Device OpenCL C Version                         OpenCL C 1.1
ICD loader Profile                              OpenCL 2.1

Potrebbe forse essere questa la causa del segmentation fault?

Ho fatto una ricerca e la versione non credo influisca, però ho visto che AMD oltre ai driver ha anche un proprio ICD, quando ho tempo di ripulire il PC, voglio fare un test usando solo mesa come driver e come icd.

Diciamo che volevo capire se di base non funziona, perchè ancora mancano pacchetti in buster, o se sono io imbranato...

Intanto grazie
Avatar utente
SgobbiT
Jr. Member
Jr. Member
 
Messaggi: 78
Iscritto il: 02/11/2005, 14:39

Re: Radeon RX 580 e OpenCL

Messaggioda Spoon » 07/12/2017, 16:55

Nella mailing list debian-devel ho trovato un messaggio del 2012 che riporta il seguente passaggio:
devel-debian ha scritto:But there is also the opposite: the ICD Loader supports a greater version of
OpenCL than the ICD. In this case, an OpenCL application using features from
the new version will call the ICD Loader that will call the "function" at the
address present in the memory after the end of the (old) structure provider by
the ICD. This generally leads to a segfault.

Non ho tuttavia letto tutto quanto (la mail e' lunga) e il messaggio e' vecchio, quindi possiamo usarla solo come indicazione. Ad ogni modo AMD dichiara che la tua scheda supporta OpenCL 2.0, vedi il sottomenu "features" della pagina prodotto:
http://www.amd.com/en/products/graphics/radeon-rx-580
Servirebbe un test base per capire perlomeno se l'implementazione di OpenCL funziona, una specie di "Hello World" di OpenCL. Purtroppo non ho ancora trovato niente del genere, e non ho le competenze necessarie per scrivere un tale script.
Spoon
wiki member
wiki member
 
Messaggi: 309
Iscritto il: 23/11/2013, 14:37

Re: Radeon RX 580 e OpenCL

Messaggioda Aki » 08/12/2017, 12:49

SgobbiT ha scritto:sto avendo problemi a far funzioare OpenCL su Debian Buster, nello specifico l'applicazione che lo usa mi da "segmentation fault", ho provato applicazioni diverse quindi penso che il problema sia in qualche libreria o compilatore opencl

Potresti fornire maggiori informazioni su come hai configurato l'ambiente opencl (in particolare quali programmi/pacchetti hai installato e configurato) ed, inoltre, il codice sorgente del programma che genera il "segmentation fault" ? Comunque, in caso di "segmentation fault" tramite debugger (ad esempio, gdb) puoi generare uno stack trace relativo alla parte di codice in cui si è generato l'errore e, quindi, puoi risalire alla libreria interessata o allo stesso codice sorgente del programma (se è al suo interno che si genera).
Aki
Global Moderator
Global Moderator
 
Messaggi: 7464
Iscritto il: 27/12/2007, 16:59

Re: Radeon RX 580 e OpenCL

Messaggioda SgobbiT » 08/12/2017, 20:04

Spoon ha scritto:Servirebbe un test base per capire perlomeno se l'implementazione di OpenCL funziona, una specie di "Hello World" di OpenCL. Purtroppo non ho ancora trovato niente del genere, e non ho le competenze necessarie per scrivere un tale script.

Ho trovato questo https://github.com/elhigu/opencl-testsuite e direi che funziona:
Codice: Seleziona tutto
[100%] Built target ocl-tester
######## Platforms selected with regex: .* ########
6535021590121809752 : Clover / Radeon RX 580 Series (AMD POLARIS10 / DRM 3.15.0 / 4.12.0-2-amd64, LLVM 5.0.0)
######## ----------- running the suite ----------- ########

Testing Time: 0.53s
  Expected Passes    : 9
[100%] Built target check


Aki ha scritto:
SgobbiT ha scritto:Comunque, in caso di "segmentation fault" tramite debugger (ad esempio, gdb) puoi generare uno stack trace relativo alla parte di codice in cui si è generato l'errore e, quindi, puoi risalire alla libreria interessata o allo stesso codice sorgente del programma (se è al suo interno che si genera).

Il programma che sto tentando di lanciare è un miner di cryptovaluta https://github.com/fireice-uk/xmr-stak-amd , eseguito con gdb:
Codice: Seleziona tutto
Thread 1 "xmr-stak-amd" received signal SIGSEGV, Segmentation fault.
0x00007ffff3e34ea0 in ?? () from /usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1


Mentre se eseguo una versione più nuova che ho trovato https://github.com/fireice-uk/xmr-stak, non va in errore ma mi dice questo:
Codice: Seleziona tutto
[2017-12-08 18:51:24] : WARNING: No AMD OpenCL platform found. Possible driver issues or wrong vendor driver.
[2017-12-08 18:51:24] : WARNING: backend AMD disabled.


Per quanto riguarda i pacchetti, oggi sono ripartito da installazione pulita, e ho cercato di mettere quelli che mi sono relativi a opencl: https://pastebin.com/a0WMrWYb
Prima di installare i driver proprietari ho provato a lanciare clinfo ma non vedeva la scheda.

Dopo il link che ha riportato "Spoon" e ciò che riporta la release più nuova del programma, la differenza di versione tra loader e mesa potrebbe essere il problema. Solo non saprei se e come portarla in pari...
In ogni caso ho visto che in debian jessie era presente un icd proprietario: amd-opencl-icd

Quindi probabile che manchi ancora qualche pacchetto...quando ho un pò di tempo riprovo un'installazione con jessie
Avatar utente
SgobbiT
Jr. Member
Jr. Member
 
Messaggi: 78
Iscritto il: 02/11/2005, 14:39

Re: Radeon RX 580 e OpenCL

Messaggioda Aki » 08/12/2017, 21:41

SgobbiT ha scritto:Il programma che sto tentando di lanciare è un miner di cryptovaluta https://github.com/fireice-uk/xmr-stak-amd , eseguito con gdb:
Codice: Seleziona tutto
Thread 1 "xmr-stak-amd" received signal SIGSEGV, Segmentation fault.
0x00007ffff3e34ea0 in ?? () from /usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1

Se compili il programma con i simboli di debug puoi identificare il nome della funzione della libreria libMesaOpenCL.so.1
interessata dal segfault, con i parametri che le sono passati dal programma che l'ha invocata, con tutta la sequenza dello stack trace; poiché, però, è chiamata questa libreria invece dell'equivalente proprietario di AMD, c'è probabilmente comunque un difetto di configurazione o un difetto nel codice sorgente del programma.

SgobbiT ha scritto:Mentre se eseguo una versione più nuova che ho trovato https://github.com/fireice-uk/xmr-stak, non va in errore ma mi dice questo:
Codice: Seleziona tutto
[2017-12-08 18:51:24] : WARNING: No AMD OpenCL platform found. Possible driver issues or wrong vendor driver.
[2017-12-08 18:51:24] : WARNING: backend AMD disabled.

È possibile che riconosca il supporto MESA ad opencl e non quello AMD (in tal senso, tale errore è coerente con l'utilizzo della libreria libMesaOpenCL.so.1 indicata nel segfault precedente)

SgobbiT ha scritto:Per quanto riguarda i pacchetti, oggi sono ripartito da installazione pulita, e ho cercato di mettere quelli che mi sono relativi a opencl: https://pastebin.com/a0WMrWYb

Riporto l'elenco in chiaro per referenza futura:
Codice: Seleziona tutto
mesa-opencl-icd:amd64                 17.2.5-1       free implementation of the OpenCL API -- ICD runtime
ocl-icd-libopencl1:amd64              2.2.12-1       Generic OpenCL ICD Loader
ocl-icd-opencl-dev:amd64              2.2.12-1       OpenCL development files
opencl-c-headers                      2.1-1          OpenCL (Open Computing Language) C header files
opencl-clhpp-headers                  2.0.10-1       C++ headers for OpenCL development
opencl-headers                        2.1-1          OpenCL (Open Computing Language) header files
mesa-opencl-icd:amd64                 17.2.5-1       free implementation of the OpenCL API -- ICD runtime
ocl-icd-libopencl1:amd64              2.2.12-1       Generic OpenCL ICD Loader
ocl-icd-opencl-dev:amd64              2.2.12-1       OpenCL development files
firmware-amd-graphics                 20170823-1     Binary firmware for AMD/ATI graphics chips

Da questo elenco risulta che non hai installato alcun supporto specifico per OpenCL per la scheda grafica che ha indicato nel titolo della discussione (AMD Radeon RX 580). Vedi, ad esempio, https://math.dartmouth.edu/~sarunas/amdgpu.html
Aki
Global Moderator
Global Moderator
 
Messaggi: 7464
Iscritto il: 27/12/2007, 16:59


Torna a Hardware

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti