Недавно я написал несколько версий одной и той же программы (генерирует наборы Джулии - фрактальные картинки размером 17200x17200 пикселей), чтобы проверить производительность нескольких различных решений.
Я написал версии:
- CPU (pthreads) - поток 252 с /1, поток 131 с /2, поток 114 с /3, поток 95 с /4
- CUDA - 2,51 с;)
- OpenCL - 3.39 с реализацией графического процессора Nvidia, 16.51 с процессором Intel
Платформа тестирования: Intel Core i5 520M, GeForce 330M
Мой вопрос: как объяснить счет процессора OpenCL? Я ожидал результата около 4-х потоков по стандартной реализации - около 95 с, но это заняло гораздо меньше времени. Во время работы программы процессор был занят на 390%. Как это могло произойти?
Использует ли OpenCL мой Core i5 и интегрированную графику Intel HD?