вторник, 5 декабря 2023 г.

OpenCL. Обновление OpenCL/CUDA SDK и неожиданные результаты повторных тестов.

Оказывается, все это время я работал со старой версией SDK, выпущенной аж в 2017 году (OpenCL 2.1 или 2.2). Конечно же, я немедленно обновился до свежайшей версии 2023 года (OpenCL 3.0) и перезапустил все тесты и был очень сильно удивлен результатами. При тестировании на прежней версии SDK результаты для матрицы 4094*4096 были следующими:

naive:         849 ms
submatrix:     193 ms
submatrix+WPT: 132 ms
Теперь же, при новом SDK результаты получапются вот такие:

naive:         61 ms
submatrix:     60 ms
submatrix+WPT: 64 ms
Я подумал, что может я смогу увидеть разницу на больших обьемах данных и проверил на матрице 8192*8192 и получил вот такие результаты:

naive:         241 ms
submatrix:     237 ms
submatrix+WPT: 236 ms
То есть практически одианковые. Получается, с одной стороны, новая версия SDK увеличила скорость работы так, что перемножение работает в два раза быстрее, чем в самом быстром способе в предыдущем  SDK, а с другой стороны - все остальные способы работают так же быстро, как самый быстрый! То есть теперь нет никакого смысла что-то оптимизировать, а все мои предыдущие изыскания носят скорее академический интерес в данном случае. Я не знаю, что именно они там поменяли, но результаты просто фантастические. 



Комментариев нет:

Отправить комментарий