Nejlepší podpora? Vraťte nám vzorové zdrojáky pro OpenCL, žádají vývojáři nVidii

19. 9. 2012

Sdílet

 Autor: Redakce

Ačkoliv má Nvidia vlastní výpočetní framework CUDA, doposud společnosti nikdo nemohl vyčítat, že by snad vývojářům toužícím vyvíjet pod OpenCL házela klacky pod nohy. Stačilo stáhnout balík CUDA SDK, který obsahoval i vzorové algoritmy napsané pro OpenCL. Takové příklady jsou pro vývojáře velmi užitečná věc. Ti chytřejší pochopí, jak to funguje, a naučí se psát podobné algoritmy vlastními silami, my ostatní zkopírujeme vzorový kód a upravujeme ho do té doby, než to funguje tak, jak zrovna potřebujeme.

Jenže bez jakéhokoliv veřejného oznámení příklady pro OpenCL z CUDA SDK zmizely. Pouze členům skupiny CUDA Users Group na LinkedIn zanechala Nvidia následující vzkaz:

Všechny naše příklady kódu pro OpenCL jsou dostupné na http://developer.nvidia.com/cuda/opencl a nejnovější verze fungují na GPU z řady Kepler.
Zpřístupnili jsme je jako samostatné downloady, protože vývojáři používající OpenCL nepotřebují zbytek CUDA Toolkitu, který začíná být docela velký.
Omlouváme se, pokud jsme způsobili jakýkoliv zmatek, jen se snažíme OpenCL vývojářům trochu usnadnit život.

S pozdravem,
Will.

William Ramey
Sr. Product Manager, GPU Computing
NVIDIA Corporation

Vincent Hindriksen, autor blogpostu na StreamComputing.eu, to ale vidí trochu jinak.

  • Na zmíněné stránce je 38 starých příkladů, které je nutné stáhnout po jednom, ne jako jedno kompaktní SDK. Příklady pro Linux vůbec nefungují, protože některé soubory chybí.
  • Na stránku http://developer.nvidia.com/cuda/opencl nevede odnikud z webu Nvidie žádný odkaz, ani Google ji nenajde mezi předními výsledky. Dříve navíc stránka obsahovala více informací (viz WebArchive) a odkaz na zdrojové kódy byl do současné pahýlovité verze přidán až po stížnostech vývojářů.
  • Jen čtyři z oněch 38 příkladů byly aktualizovány v roce 2011, zbytek je z roku 2010 či starší. To znamená, že nejsou upraveny tak, aby využívaly potenciál nejnovějších GPU.
  • Nikdo si na oficiálních fórech Nvidie na velikost balíku CUDA SDK před osekáním nestěžoval, ani nikdo za zmenšení downloadu neděkuje.

Vývojáři tedy pro Nvidii sepisují petici. Její vzkaz je stručný: podpisem vývojáři pokorně žádají, aby se příklady zdrojových kódů pro OpenCL opět staly součástí CUDA SDK.

Konspirační teorie: CUDA v ohrožení?

Proč vlastně Nvidia tak najednou obrátila, když ještě loni její web hrdě hlásal „Nejlepší podpora OpenCL v celém průmyslu“? Vincent Hindriksen se domnívá, že by to mohlo souviset s používáním LLVM pro kompilaci kernelů GPGPU aplikací, což je postup, který CUDA od OpenCL nedávno převzala. Nebudu se tvářit, že rozumím, co to je, avšak východisko pro laika má být takové, že to obě technologie (CUDA a OpenCL) sbližuje a smazává tak výhody, které CUDA nad OpenCL má.

Autor blogpostu tedy spekuluje, zdali se Nvidia nezalekla možných výhod pro OpenCL a následně omezila podporu, nebo zdali rozhodnutí hodit otevřený framework přes palubu padlo už dávno. Navštívíte-li totiž web sdružení Khronos, které za standardem OpenCL stojí, zjistíte, že poslední ovladače uvedené jako certifikované jsou z července 2010.

 

Že by aplikace napsané v OpenCL na akcelerátorech Nvidie nefungovaly, ani zdaleka nehrozí. Pokud se ale vývojáři chtějí naučit, jak nejlépe pro její karty programovat, celkem dobře jim k tomu poslouží příklady pro CUDA a nikoliv příklady pro OpenCL. Řada zákazníků ale o proprietární framework, který nefunguje na hardware jiných dodavatelů (což zdaleka není jen AMD), ale nemá zájem.

bitcoin_skoleni

Nvidia ale očividně z otevřeného standardu nemá moc radost a podporuje jej, jen aby se neřeklo, a někdy ani to ne. To je třeba příklad development kitu CARMA s čipem Tegra 3 a kartou Quadro 1000M, který podporuje framework CUDA, ale ne OpenCL. Přiměje petice kalifornskou firmu, aby se chytla za nos a pro OpenCL poskytla plnohodnotnou podporu, nebo se vývojáři dočkají jen slibů a malých náplastí?

Zdroj: Stream Computing