Вопрос по – Как запустить приложение CUDA на плате ATI или Intel в программном режиме?

1

Я хочу иметь возможность запускать свое программное обеспечение в режиме графического процессора на NVidia и в режиме процессора (программного обеспечения) на ATI или Intel. Как мне этого добиться?

Это то же самое, что и PhysX.

В настоящее время я получаю сообщение об ошибке на машине с картой ATI о том, что nvcuda.dll не найден.

Пожалуйста, не советуйте OpenCL. это вопрос похож на мой. Но ответ OpenCL для меня неприемлем.

Я в Windows 7 + Visual Studio 2008

итак ... когда он хочет работать в режиме GPU, когда присутствует карта nvidia, а программный режим на ati и intel ... ocelot не делает этого? Scott M.
Технически правильные @talonmies, но есть некоторые замечательные вещи:code.google.com/p/gpuocelot Scott M.
@scottM: я хорошо знаю оцелот, но здесь это не поможет. Ocelot полагается на повторную реализацию среды выполнения CUDA. Вы не можете его использоватьand среда выполнения CUDA вместе в одном приложении. talonmies
Нет «программного режима» в CUDA. Вам нужно будет указать свой собственный путь к коду ЦП и использовать его, когда во время выполнения CUDA не будет обнаружен доступный графический процессор. talonmies

Ваш Ответ

2   ответа
1

и, отличном от NVidia, например, Otoy:http://venturebeat.com/2016/03/09/otoy-breakthrough-lets-game-developers-run-the-best-graphics-software-across-platforms/

По сути, он переводит вызовы CUDA в другие бэкэнды (Metal, Vilkan, DirectX, OpenGL), чтобы позволить приложениям, написанным для CUDA, работать на ряде платформ. Неизвестно, можно ли будет просто поместить их nvcuda.dll в нужное место и тем самым мгновенно заставить ваше приложение работать, или же разработчику придется что-то изменить перед развертыванием программного обеспечения.

Пока что нет публичного релиза afaik.

8

есть программное обеспечение под названием GPU Ocelot, которое выяснит, на каком оборудовании должен выполняться код gpu во время выполнения:http://code.google.com/p/gpuocelot/

все ваши звонки через Ocelot и выshould хорошо идти

С домашней страницы:

Ocelot is a modular dynamic compilation framework for heterogeneous system, providing various backend targets for CUDA programs and analysis modules for the PTX virtual instruction set. Ocelot currently allows CUDA programs to be executed on NVIDIA GPUs, AMD GPUs, and x86-CPUs at full speed without recompilation.

Хотя никто еще не создал PhysX для Ocelot, это не значит, что это невозможно. Я надеялся, что кто-нибудь возьмется за это.
@GregSmith, но как мне определить, находится ли nvcuda.dll на компьютере? Оставьте свои комментарии в качестве ответа, и я приму это Dmitriy
Вы должны определить, находится ли nvcuda.dll на компьютере. Если это так, вы можете динамически загружать nvcuda.dll и использовать cuDevice * API для запроса устройств. Если устройств достаточно, вы можете динамически загрузить DLL, которая ссылается на CUDART. GPU ocelot - это средство для запуска кода CUDA на нескольких машинах. PhysX не делает этого. PhysX имеет путь кода CUDA и многопоточный путь процессора.

Похожие вопросы