К чему это я, спросите Вы. А вот к чему:
Два месяца думал что за ерунда приключилась с OpenCL'ем - не работает и все тут. Проверял двумя способами:
- примерами из NVIDIA GPU Computing SDK v 2.3b
- примером из библиотеки CLxx
Так бы я и продолжал думать, если бы случайно не нашел на сайте нвидии новый GPU Computing SDK версии 3.0. Скачал, поставил, скомпилировал OpenCL'ные примеры, запустил - работают.
После этого в голове начался мыслительный процесс, который сводился к поиску ошибку в библиотеке CLxx. Это предположение оказалось ложным, ибо в библиотеки-то ошибки не было. Зато оказалось, что в спецификации к ф-ии clCreateContextFromType есть такая хитрая строчка, относящаяся к первому параметру, принимаемому данной ф-ей:
properties
can be NULL in which case the platform that is selected is implementation-defined
То есть получается, что нвидиевские драйвера, вместо того, чтобы, как подсказывает логика, взять первую доступную платформу, возвращают INVALID_PLATFORM.Дальше были развлечения с модификацией того самого примера из CLxx, но это уже совсем другая история...
Комментариев нет:
Отправить комментарий