Qt ha rilasciato un bel wrapper per Opencl (QtOpencl) che fa un ottimo lavoro di nascondere un sacco di piastre di riscaldamento e fa suonare OpenCL piacevolmente con il display widget di Qt e Opengl.CUDA wrapper per Qt
Ma ci sono alcune cose che posso fare meglio in Cuda che OpenCL e gli strumenti Cuda sono molto più maturi.
È relativamente semplice creare un semplice wrapper CUDE C++ e integrarlo nel processo di creazione di Qt, ma mi chiedevo se qualcuno avesse fatto qualcosa di più? Idealmente una libreria equivalente QtCuda.
La gente di Qt non sono interessati a supporto Cuda perché non è cross platform abbastanza
Edit: Giusto per la ricerca, v'è un wrapper per OpenGL Qt CUDA PBO. È basato sul Dr Dobbs simplePBO example. Ci sono un paio di correzioni di bug necessarie per farlo funzionare bene con Cuda4 ma è un buon inizio.
ps non c'è modo di contattare l'autore del blog e i commenti non funzionano - se trova questo fammelo sapere e invierò le correzioni.
Dipende dal tuo passato di eredità! Con cuda la mia app funzionerà con una telecamera CCTV usando un chipset Tegra. Con OpenCL sono bloccato su CPU "legacy" su PC. Ho bisogno che questo sia Cuda perché alcune persone hanno trasferito alcune librerie molto complesse a Cuda, è meno lavoro per avvolgere Cuda per la mia app che implementare e dimostrare tutta la matematica su OpenCL. Avendo tutto racchiuso in Qt posso usare Cuda o OpenCL molto più facilmente. –
Questo sarebbe un buon punto, se fosse vero; L'elenco ufficiale http://www.nvidia.com/object/cuda_gpus.html non parla affatto di Tegra. Anche una CCTV con Qt sarebbe piuttosto strana, dal momento che è fortemente focalizzata sullo sviluppo della GUI. Le librerie CUDA a cui ti riferisci non sono portate su ARM; le librerie open-source sono per lo più portate su OpenCL. Il codice ported ha la stessa matematica, dal momento che CUDA e OpenCL sono una sorta di dialetti incompatibili. –
Scusa se non mi sono chiarito. Due motivi per andare in Cuda, uno è che i chipset NVidia incorporati (come Tegra) con Cuda stanno sostituendo i DSP personalizzati in molte app integrate (in particolare la visione artificiale), l'altro è un sacco di elaborazione delle immagini e codice matematico esistente in Cuda. Il Qt era per la prototipazione desktop, avendo Qt fare tutto il boilerplating specifico OpencL/GPU e mi permetteva di passare da uno all'altro nella fase di prototipo facilmente. –