Részben egyetértek. Amivel nem (illetve lehet, hogy inkább csak félreértettél) : pontosan az OpenCl "támogatással" van a probléma Amd környékén (nem a funkcionális támogatással, hanem az optimalizálás teljes hiányával -ezt felejtik ki a marketingből-, ami főleg az indulási időket jellemzi, ami bizonyos programoknál nem olyan fontos, mert elrejthető, de más programokban pedig nagyonis számítanak). Tehát bizonyos programokat Amd videókártyán futtatni felesleges, mert a cpu-n gyorsabban fut le a kód, pedig pont az Amd miatt használnak (jelenleg még) OpenCl-t, de ha egy Geforce-on van értelme lefuttatni, Amd-n nem, akkor már inkább Cudát használ az ember. (Persze ettől még egyre inkább igaz lesz az, hogy a konzumer szinten csökkenni fog a Cudás kódok száma, hála az Nvidia butaságának, hogy nem tette és nem teszi nyílttá a Cudát).
Egyébként a Cuda már régen eltűnt volna, ha annyira rossz lenne. Igaz, hogy ez volt az első megjelent kiterjesztés, amivel általános célú programokat lehetett készíteni GPU-ra (emiatt elég sok olyan kod készült, amik ma is futtathatók), ráadásul a rendszer tervezői nagyon jó munkát végeztek, amit az OpenCl-re már nem lehet elmondani. Elég csak arra gondolni, hogy szemléletmódjában az OpenGl-es vonalat követi (nyilván emiatt elvileg jobban integrálható az OpenGl-el), de az OpenGl-t nem általános programozásra tervezték és ezért hiába másoltak le sok mindent a Cudából: sokkal kényelmetlenebb a programozása, mint a Cudának (elsősorban ez okozza a programok Cudához képesti lassabb futását, az OpenCl-es implementációjuk alatt).
A CL_DEVICE_MAX_MEM_ALLOC_SIZE pedig az OpenCl egyik legdurvább korlátja, ami amellett, hogy kényelmetlen is, lassít és felesleges többletmemóriát kell felhasználni miatta.
Nyilván sok esetben ezek nem tántorítanak el embereket az OpenCl-re történő fejlesztés melletti döntéskor, de ha én játszani akarok: konzolt veszek és nem számítógépet, így ha komolyan gondolom a GPU-ra történő fejlesztést (jelenleg) hiába OpenCl programokat fejlesztek, akkor is Nvidia kártyát veszek.
Ezzel még nem értek egyet: "A C++ AMP ... bár technikai értelemben nem olyan, mint a CUDA, vagy az OpenCL, de a célja nyilván azonos." Amennyiben a cél alatt azt érted, hogy egy program a gpu-n is futhasson akkor ez igaz, de ez annyira absztrakt megközelítése a dolgoknak, mintha azt mondanám, hogy egy harci helikopter, bár technikai értelemben nem olyan, mint egy utasszállító repülőgép, de nyilván a célja azonos (repülnek és emberek is lehetnek bennük
). Azért le kell szögeznem, hogy a jövőbeni változásait a C++ AMP-nak nem ismerem, de akkor is igaz, hogyha olyan funkcionalitást akarnak, mint amilyen a Cudáé vagy az OpenClé, akkor annyira meg kellene változtatni, hogy pont a jelenlegi előnyeit veszítené el, emiatt nem hiszem hogy ezeket a változásokat elvégzik.
[ Szerkesztve ]