PDA

View Full Version : Alcuni sviluppatori di Red Hat lavorano a un'alternativa a NVIDIA CUDA


Redazione di Hardware Upg
20-11-2018, 17:41
Link alla notizia: https://pro.hwupgrade.it/news/scienza-tecnologia/alcuni-sviluppatori-di-red-hat-lavorano-a-un-alternativa-a-nvidia-cuda_79235.html

Alcuni sviluppatori di Red Hat hanno annunciato l'intenzione di sviluppare una nuova piattaforma di calcolo che sia alternativa a NVIDIA CUDA, per lasciare maggiore libertà agli utenti e agli sviluppatori

Click sul link per visualizzare la notizia.

jepessen
20-11-2018, 20:53
L'alternativa c'e' gia' e si chiama OpenCL...

Spawn7586
20-11-2018, 21:33
L'alternativa c'e' gia' e si chiama OpenCL...

Quando non si arriva neanche alla fine dell'articolo prima di essere sopraffatti dalla voglia di commentare -_-"

Tedturb0
20-11-2018, 22:40
Un alternativa a CUDA da RedHat :rotfl:

boboviz
21-11-2018, 06:48
Quando non si arriva neanche alla fine dell'articolo prima di essere sopraffatti dalla voglia di commentare -_-"
Boh. L'articolo l'ho letto fino alla fine e anche io non ho capito perchè creare ulteriore frammentazione (dicendo di volerla ridurre) e non, per esempio, aiutando seriamente lo sviluppo e l'implementazione di OpenCl (tra l'altro, se non ricordo male, Red Hat è già parte del Kronos Group).
Se poi si legge una cosa del genere: Le implementazioni di AMD e Intel sono, di contro, open source, ma sono specifiche per l'hardware e non possono dunque essere utilizzate in senso generale al momento attuale quando una delle caratteristiche principali di OpenCl è di essere hw agnostic...

cignox1
21-11-2018, 07:43
>>Quando non si arriva neanche alla fine dell'articolo prima di essere sopraffatti dalla voglia di commentare -_-"

Durante la prima parte dell'articolo ho subito pensato: ma non c'é giá OpenCL?
Dopo la lettura dell'articolo ho pensato: ma non c'é giá OpenCL?

Non sono riuscito a capire quale problema o limite avrebbe OpenCL tale da giustificare una nuova piattaforma.

Unrue
21-11-2018, 08:03
>>Quando non si arriva neanche alla fine dell'articolo prima di essere sopraffatti dalla voglia di commentare -_-"

Durante la prima parte dell'articolo ho subito pensato: ma non c'é giá OpenCL?
Dopo la lettura dell'articolo ho pensato: ma non c'é giá OpenCL?

Non sono riuscito a capire quale problema o limite avrebbe OpenCL tale da giustificare una nuova piattaforma.

Sono sostanzialmente 3:

1) le performance rispetto al runtime originario (CUDA ad esempio)
2) la lentezza nel portare nuove features dei vari sottosistemi. Se Nvidia tira fuori un nuovo modo di trasferire i dati da CPU a GPU ad esempio ovviamente ci vuole un pò di tempo perché sia implementato in uno standard come OpenCL e anzi non è neanche detto che poi venga implementato. Quindi se usi OpenCL per forza di cose devi rinunciare alle ultime features almeno per un pò oppure del tutto.
3) OpenCL è pensato per usare un generico acceleratore non solo una GPU. E come tutte le cose generiche devi arrivare a fare dei compromessi.

Detto questo ciò non giustifica appieno la scelta di fare un'altra cosa ancora, sarebbe meglio supportare il più possibile OpenCL, ma questo dipende anche da Nvidia e AMD.

carlottobre
21-11-2018, 08:11
Non dimentichiamoci che IBM si è comprata Red Hat; NVIDIA è oggi (IMHO) il più pericoloso concorrente di IBM nel business che conta, mainframe per grandi centri di calcolo e SW+servizi collegati.

polkaris
21-11-2018, 09:35
Mi sembra solo un goffo tentativo di IBM di appropriarsi di un busness che è, e resterà, di NVIDIA. Non vedo come IBM possa fare meglio di CUDA sulle schede NVIDIA.

Unrue
21-11-2018, 09:42
Mi sembra solo un goffo tentativo di IBM di appropriarsi di un busness che è, e resterà, di NVIDIA. Non vedo come IBM possa fare meglio di CUDA sulle schede NVIDIA.

Non penso, l'articolo infatti dice così:

Il progetto non è parte della roadmap ufficiale di Red Hat, ma è piuttosto un progetto indipendente sostenuto dagli sviluppatori.

boboviz
21-11-2018, 13:29
Sono sostanzialmente 3:
1) le performance rispetto al runtime originario (CUDA ad esempio)

Grazie tante, Cuda è scritto per girare solo ed esclusivamente su un hw DEDICATO. Tutto quello che è customizzato è più performante.
Detto questo OpenCl, in alcuni campi, non ha niente da invidiare a Cuda, anche grazie a strumenti come SYCL.

2) la lentezza nel portare nuove features dei vari sottosistemi. Se Nvidia tira fuori un nuovo modo di trasferire i dati da CPU a GPU ad esempio ovviamente ci vuole un pò di tempo perché sia implementato in uno standard come OpenCL e anzi non è neanche detto che poi venga implementato. Quindi se usi OpenCL per forza di cose devi rinunciare alle ultime features almeno per un pò oppure del tutto.
Non è detto che OpenCl debba per forza "copiare" quello che fa CUDA, anzi. Ultimamente il team di sviluppo sta puntando fortemente sulla integrazione con C++, per unire tra di loro due standard. E non dimentichiamoci della futura fusione con Vulkan.

3) OpenCL è pensato per usare un generico acceleratore non solo una GPU. E come tutte le cose generiche devi arrivare a fare dei compromessi.
E' la sua debolezza. Ed è il suo punto di forza, basti vedere come OpenCl sta entrando di prepotenza nel settore FPGA.

Detto questo ciò non giustifica appieno la scelta di fare un'altra cosa ancora, sarebbe meglio supportare il più possibile OpenCL, ma questo dipende anche da Nvidia e AMD.
Sono d'accordo con te. E ancora non capisco come faccia ad essere a capo di Kronos un uomo di Nvidia.

pabloski
21-11-2018, 14:33
Grazie tante, Cuda è scritto per girare solo ed esclusivamente su un hw DEDICATO. Tutto quello che è customizzato è più performante.
Detto questo OpenCl, in alcuni campi, non ha niente da invidiare a Cuda, anche grazie a strumenti come SYCL.

Ma direi che OpenCL non ha proprio niente da invidiare a CUDA in tutti i sensi. Il discorso dell'ottimizzazione e' relativo, soprattutto quando hai alle spalle una toolchain basata su LLVM.

Il problema di OpenCL e' che i co****ni che lo implementano si contano sulle dita di una mano.

E' normale che, cercando di accelerare una rete neurale deep, su un RK3288 con GPU Mali, io debba passare due settimane a sclerare per ottenere risultati sub ottimali, solo perche' OpenCL e' implementato a dovere solo sulla carta? Cioe' nemmeno coloro che in teoria dovrebbero avere tutto l'interesse ad implementarlo lo fanno e questo perche' perseguono pure loro logiche da standard proprietari ( si stanno radunando intorno ad ARM Compute Library ).

Stessa cosa i campioni di AMD che s'inventano ROCm. Ma perche'? Quando poi se proprio gli fa schifo il nome OpenCL, ci sono all'orizzonte le estensioni compute per Vulkan.

No, vogliono fare pure i loro il lock-in, sperando di replicare il giochetto riuscito a Nvidia.

Ovviamente devono spiegarci come intenderanno muoversi sul fronte FPGA, NPU, TPU e compagnia cantante. Prevedo un altro caos di proporzioni bibliche, che richiedera' 30 anni per essere sbrogliato.

AceGranger
21-11-2018, 15:32
Non dimentichiamoci che IBM si è comprata Red Hat; NVIDIA è oggi (IMHO) il più pericoloso concorrente di IBM nel business che conta, mainframe per grandi centri di calcolo e SW+servizi collegati.

IBM ha integrato l'nVlink di nVidia direttamente nei suoi processori....

semmai è proprio il contrario... nVidia è l'unico modo che ha per rimanere nel mondo dei mainframe, visto che, di anno in anno, il calcolo si sta spostando verso le GPU e le CPU stanno diventando "di contorno".

AMD si fa tutto in casa, Intel sta sviluppando GPU principalmente per questo motivo ( nVidia ha rubato a Intel qualcosa come 2 Miliardi di fatturato in ambito HPC nel 2017 e quest'anno, ne rubera quasi altri 3 ), quindi, o IBM si mette a progettare GPU o gli rimane solo nVidia perchè il futuro è GPU.... gli piacera poco "legarsi" a un produttore, ma una volta che gli altri si fanno tutto in casa non trovo molto furbo perdere tempo a sviluppare un nuovo linguaggio quando poi va a finire che se prendo GPU AMD prendo anche CPU AMD e con GPU Intel prendero CPU Intel... perchè alla fine, finira che i processori avranno un bus di collegamento diretto come IBM+nVlink, ( AMD ha l'Infinity Fabric e credo che Intel arrivera con qualche cosa di simile ).

nVidia se la sta giocando bene con l'nVlink e 16 GPU con solo 2 CPU.

boboviz
21-11-2018, 16:09
Stessa cosa i campioni di AMD che s'inventano ROCm. Ma perche'? Quando poi se proprio gli fa schifo il nome OpenCL, ci sono all'orizzonte le estensioni compute per Vulkan.
Sono d'accordo con te. Rocm non è altro che una variante di opencl (che ne è alla base, infatti). Boh, gli piaceranno i nomi diversi.

No, vogliono fare pure i loro il lock-in, sperando di replicare il giochetto riuscito a Nvidia.
Non saprei. Rocm gira anche su piattaforme Intel, per esempio.
C'è da dire che AMD non sembra particolarmente "forzare" su OpenCl. Basti vedere, per esempio, che non supporta ufficialmente il meeting annuale IWOCL...

Ovviamente devono spiegarci come intenderanno muoversi sul fronte FPGA, NPU, TPU e compagnia cantante. Prevedo un altro caos di proporzioni bibliche, che richiedera' 30 anni per essere sbrogliato.
Lasceranno fare, come spesso è accaduto.
Portassero avanti delle direttive chiare e consistenti.
Già si comincia a parlare di OpenCL-Next e ho paura, come te, che sarà un delirio peggiore.


P.S. Sono andato a leggermi la presentazione originale dei tipi di Red Hat e sembra, più che altro, un utilizzo diverso e migliore di SYCL.

zappy
21-11-2018, 17:22
Boh. L'articolo l'ho letto fino alla fine e anche io non ho capito perchè creare ulteriore frammentazione (dicendo di volerla ridurre) e non, per esempio, aiutando seriamente lo sviluppo e l'implementazione di OpenCl ...

sono d'accordo. 1000 standard = nessuno standard. :(

Unrue
26-11-2018, 08:08
Grazie tante, Cuda è scritto per girare solo ed esclusivamente su un hw DEDICATO. Tutto quello che è customizzato è più performante.
Detto questo OpenCl, in alcuni campi, non ha niente da invidiare a Cuda, anche grazie a strumenti come SYCL.

Si ok, ma in alcuni campi le prestazioni sono fondamentali ed è meglio rivolgersi direttamente a CUDA (purtroppo).. Quindi tutto dipende da che codice stai sviluppando.


Non è detto che OpenCl debba per forza "copiare" quello che fa CUDA, anzi. Ultimamente il team di sviluppo sta puntando fortemente sulla integrazione con C++, per unire tra di loro due standard. E non dimentichiamoci della futura fusione con Vulkan.



Non è questione di "copiare" CUDA, è che se tu giri OpenCL su GPU Nvidia e ti proponi come standard devi supportare il più possibile ciò che la scheda sotto ti mette a disposizione, altrimenti rischi di non sfruttarla appieno. E lo stesso per le GPU AMD o per un qualunque acceleratore. Detto questo io sono pienamente favorevole ad usare OpenCL, ma se serve sfruttare le ultime potenzialità di una scheda non è detto che sia la scelta migliore.