Na ne vicceljünk már. Egy OpenCL implementáció nem azért gyors az egyiken és lassú a másikon, mert a driver gyenge az utóbbin! Nagyon gyorsan zökkenjen ki mindenki ebből a téveszméből. Azért lassú, mert ez egy hardverközeli nyelv, és a hardverek mit ad isten különbözőek. ARM Mali-ban nincs shared memória, hanem a globális memóriában van a __shared objektum. Csoda, hogy a Radeonon gemm-ben 2x gyorsulást okozó __shared-be másolás Malin masszívan lassít? Intel GPU-ban nincs vektor típus, Radeonban van. Ezek használata Radeonon gyorsít, másikon meg le se fordul.
HSAIL drivert ugyanúgy akkor meg kell írnia a gyártónak, mint az OpenCL drivert. Innentől pontosan ugyanaz a probléma áll fent, a gyenge driver visszafoghatja a hardvert (és szerintem itt még jobban, mint OpenCL esetében, mert amíg az 1-1 leképezhető hardverfunkciókra vagy egyszerűen nem támogatott a feature, itt a finalizernek rendes fordítást és optimalizálást kell elvégeznie). És ez a lényege a HSAIL-nek: nem te végzed kézzel az optimalizációt a hardverre, hanem a finalizer.
Ami egyébként vicces, hogy egy büdös darab kódrészlet nincs a neten, amit hQ-t demonstrálna, a "HSA hQ sample code" a világ legirrelevánsabb keresési találatokat adó keresések versenyén dobogós lehet..