Я разработал приложение C++ на основе архитектуры OpenCL на базе NVidia и хочу распространять его для конечных пользователей.Какие распространяемые ресурсы необходимы конечным пользователям для запуска приложений OpenCL?
К сожалению, похоже, что пользователи с карточкой ATI не могут запускать мою игру, так как DLL, содержащая мой код OpenCL, даже не загружается (динамически), в то время как пользователь с драйверами NVidia может загружать мою dll.
Что такое рекомендуемая «лучшая практика» при отправке приложения на базе OpenCL, которое «работает где угодно»? Возможно ли, чтобы поставщик приложений вставлял все DLL, которые позволят всем пользователям использовать приложение, или пользователи из разных OpenCL-архитектуры вынуждены загружать OpenCL SDK этой архитектуры?
Большое спасибо!
EDIT: Любопытно, что отсутствующая зависимость dll была решена путем добавления NVCuda.dll к моей сборке. (Хотелось бы удалить это!) Однако приведенные здесь ответы весьма полезны для «лучшей практики» в отношении создания приложения OpenCL, которое может работать на большинстве платформ ...
Большое спасибо за эту ценную информацию. Похоже, мое использование 1024, которое было так красиво в моей версии NVdia, должно быть сокращено до 256, как вы говорите, и это будет болезненным изменением! Итак, если я правильно прочитал, чем мои пользователи с достойной картой NVidia или AMD, все, что им нужно для компиляции, в то время как пользователям только с процессором Intel требуется загрузка, в то время как у пользователей только с процессором AMD есть все необходимое для компиляции? – Jeepster
Похоже, мой выбор параметров, таких как размер рабочей группы = 1024, будет преследовать меня ... Кто-нибудь видел список «безопасных настроек», которые должны запускаться на самой достойной платформе для ПК-геймеров, предполагая достойную карту AMD или NVidia чем 3 года? – Jeepster