Récemment, j'ai écrit plusieurs versions du même programme (générant des ensembles Julia - images fractales de taille 17200x17200 pixels) pour vérifier les performances de quelques solutions différentes.
J'ai écrit des versions :
- CPU (pthreads) - 252s/1 thread, 131s/2 threads, 114s/3 threads, 95s/4 threads
- CUDA - 2.51s ;)
- OpenCL - 3.39s sur l'implémentation GPU Nvidia, 16.51s sur l'implémentation CPU Intel
Plateforme de test : Intel Core i5 520M, GeForce 330M
Ma question est : Comment expliquer le score CPU OpenCL ? Je m'attendais à un résultat proche de 4 threads sur l'implémentation standard - environ 95s, mais cela a pris beaucoup moins de temps. Pendant que le programme fonctionnait, le CPU était occupé à 390%. Comment cela est-il possible ?
OpenCL utilise-t-il à la fois mon Core i5 et la Intel HD Graphics intégrée ?