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

OpenCL: ATI + NVidia, текущее состояние дел (windows)

По случаю выхода ATI Stream SDK 2.01, описанное в предыдущей статье несколько устарело. Теперь все иначе, по меньшей мере под Windows.

OpenCL.DLL устанавливается и драйверами NVidia (поверх имеющегося) и ATI SDK (только если в системе такого нет? если в системе есть более старый?) . При этом тот вариант, который ставят драйвера NVidia 196.xx - хороший, позволяющий работать и с NVidia и с ATI картами без каких-то избыточных телодвижений, а вот ATI-шный в двухкарточном варианте у меня вызывал непонятные проблемы.

Другими словами, надежнее после установки ATI SDK установить свежие драйвера NVidia еще раз.

Поддержка OpenCL ICD наконец то заработала, поэтому находятся следующие устройства:

  • Если к обоим картам подключены мониторы, а в пути (PATH) находится atiocl.dll (atiocl64.dll на 64-битной системе), то будут найдены оба GPU (+CPU-устройство, обеспечиваемое драйверами ATI).
  • Если от NVidia отключить монитор, то устройство пропадает из списка найденных (трюк с запуском PhysX на такой карте не работает, собственно такой настройки нет).
  • Если отключить монитор от ATI-карты, то Platform остается в списке устройств, однако судя по скорости расчета - он происходит на CPU.

Кроме того, интеграция с OpenGL полностью работает только если карта NVidia сделана primary display (скажем, в примере oclNbody отрисовка параметров работает во всех случаях, а отрисовка результатов расчетов - только на primary display).

Все остальное, что я сумел проверить - работает как ожидается: вычисления запускаются на нужном устройстве и все вообще соответствует ожиданиям, вроде бы получается считать и на двух устройствах сразу.

Tags: