Récemment, j’ai écrit plusieurs versions du même programme (générant Julia Sets - images fractales au format 17200x17200 pixels) pour vérifier les performances de différentes solutions.
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 la mise en œuvre du GPU Nvidia, 16.51s sur la mise en œuvre du processeur Intel
Plate-forme d'essai: Intel Core i5 520M, GeForce 330M
Ma question est la suivante: comment expliquer le score du processeur OpenCL? Je m'attendais à un résultat proche de 4 threads sur l'implémentation standard - environ 95 secondes, mais cela a pris beaucoup moins de temps. Pendant que le programme fonctionnait, le processeur était occupé à 390%. Comment est-ce possible?
OpenCL utilise-t-il à la fois mon Core i5 et ma puce Intel HD Graphics intégrée?