NVidia OpenCL 1.1

NVidia в рассылке для девелоперов сообщает нам, что в драйверах начиная с 280.13 поддерживается OpenCL 1.1

Я пощупал драйвера 280.18 для Win7/x64, и так оно и оказалось.

Проверил все примеры из AMD APP SDK, существенная часть которых раньше не работала с NVidia т.к. требовала OpenCL 1.1. Ситуация стала лучше, хотя и не идеальной:

  • Два примера должны бы работать, но не работают по причине разницы синтаксиса:
    • FluidSimulation2D ломается c диагностикой "не могу преобразовать вектора разных размеров" на конструкции вида int8 = unsigned + int8.
    • GlobalMemoryBandwidth ломается на вызове "overloadable" функции native_divide()
  • Еще три примера ломаются т.к. NVidia не поддерживает ряд расширений (что вполне ожидаемо):
    • DeviceFission - нет соответствующего расширения (хотя на Fermi его хотелось бы иметь, аппаратура то умеет)
    • SimpleDX10 - нет интеграции с DX10
    • TransferOverlap - работает, если не попросить для памяти флаг CL_MEM_USE_PERSISTENT_MEM_AMD
Но жизнь стала лучше. Например, поддерживаются 2D-изображения 16k-x-16k, вместо совершенно бессмысленных 4k-x-32k в предыдущих драйверах.

Tags: