C++ AMP è una libreria (e come parte di esso è stato anche introdotto un'estensione del linguaggio chiave). Poiché C++ AMP è una specifica aperta, può essere implementata su qualsiasi altro linguaggio di basso livello. L'implementazione di Microsoft si basa su DirectCompute (e quindi su HLSL), ma è completamente nascosta quando si utilizza C++ AMP (ecco perché C++ AMP può essere una specifica aperta, non espone DirectX nella superficie dell'API). Per ulteriori informazioni su C++ AMP, si prega di seguire le risorse a destra del nostro blog (vi terremo aggiungendo che): http://blogs.msdn.com/b/nativeconcurrency/
Lei ha fatto una dichiarazione su Microsoft lavorando con NVIDIA per migliorare le prestazioni C++ AMP - che non è vero. Microsoft ha collaborato con NVIDA e AMD e altri partner per creare la specifica aperta AMP C++. Microsoft collabora anche con i fornitori di hardware per assicurarsi che i produttori di hardware dispongano di driver di scheda video stabili, necessari per far funzionare correttamente qualsiasi tecnologia di elaborazione GPU.
Hai anche espresso confusione e buttato fuori alcuni termini. OpenCL è un approccio al GPU computing (di Khronos), così come DirectCompute (di Microsoft), così come CUDA (di NVIDIA). Queste sono tutte tecnologie separate, ciascuna con il proprio percorso verso la GPU (sempre tramite un driver di qualche tipo), ciascuna con i suoi meriti, punti di forza e svantaggi. Uno non sostituisce l'altro e uno non è universalmente migliore dell'altro. Ora hai anche C++ AMP in quel mix, come una scelta in più, e le stesse affermazioni si applicano a questo. La scelta è tua in merito alla quale decidi di utilizzare.
fonte
2012-04-25 02:38:57
Indica se il compilatore C++-AMP genera direttamente il codice macchina GPU o genera il codice C e lo passa al compilatore CUDA o OpenCL? Ad ogni modo, scrivi C++ - AMP invece di CUDA o OpenCL. –
Inoltre, non esiste una "scheda video CUDA". CUDA non è implementato nell'hardware, è convertito (compilato) nel set di istruzioni native della GPU (cioè Fermi). –
La [specifica C++ AMP] (http://download.microsoft.com/download/4/0/E/40EA02D8-23A7-4BD2-AD3A-0BFFFB640F28/CppAMPLanguageAndProgrammingModel.pdf) non fa menzione di CUDA o OpenCL. – ildjarn