OpenCL

Декабрьские новости

Tags: 

Накопилось сразу много новостей, мимо которых нельзя пройти мимо.

OpenCL

Месяц назад был объявлен OpenCL 1.2, тут о нем еще не писалось, потому что писать особо нечего: изменения мне кажутся не слишком значительными (ну кроме лучшей интеграции с DX11), а реализаций все еще нет (но вот-вот могут появиться, см. ниже).

Nvidia

OpenCL tools & compilers

Tags: 

Последние дни оказались богаты на всякие штуки для OpenCL:

OpenCL Compiler tools
Небольшая библиотека, позволяющая удобно компилировать OpenCL kernels заранее, сохраняя результат (можно - шифрованый). Цель - поэкономить на времени компиляции и на том, что kernel находится где-то внутри программы в исходных текстах.

Несколько смазывает впечатление то, что библиотека распространяется под GPL3, т.е. цель "спрятать kernel" под такой лицензией, очевидно, не может быть достигнута т.к. использующий библиотеку варез обязан тоже быть под GPL3+

Portable OpenCL
Реализация OpenCL (для CPU) на базе LLVM. OpenSource, BSD-style license.

Не смотрел, но идея мне нравится.

libclc
Реализация OpenCL для CPU в виде библиотеки, тоже поверх LLVM/Clang, хотя поминается и PTC

Анонсирую исключительно до кучи, на настоящий момент проект фактически пустой, но вдруг там что-то разовьется со временем?

Intel OpenCL 1.5: AVX, отладчик, но плохая производительность

Tags: 

Пощупал вышедший вчера Intel OpenCL SDK 1.5.

Заявленные новые фишки:

  • Поддержка AVX-векторизации (т.е. векторов в 256 бит)
  • Отладчик
Имею сказать:
Отладчик
Отладчик - работает. Пошаговая отладка, просмотр значений переменных, все отлично. С каким конкретно потоком работать - задается до запуска программы.

Несколько неудобно то, что путь до файла с исходными текстами передается в флагах компиляции. Казалось бы, компилятор все видит в момент компиляции, однако ж.

NVidia OpenCL 1.1

Tags: 

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 в предыдущих драйверах.

Свежие GPGPU tools

Tags: 

В последние дни оба основных разработчика GPU обновили свои GPGPU toolkits до CUDA 4.0 RC2 и APP SDK 2.4, соответственно.

CUDA 4.0 RC2
CUDA 4.0 доступна для скачивания без пароля и регистрации с Nvidia developer zone.

В RC2 исправлено некоторое количество проблем RC1, подробнее см. Release Notes Errata.

Новости одной строкой

Tags: 

Вдруг накопилось много мелких, но довольно существенных новостей, которые анонсирую одним текстом:

Parallel Nsight Pro стал бесплатным
Pro-версия Parallel Nsight теперь раздается бесплатно (раньше - только версия Standard). Берут отсюда, требуется регистрация.

Профессиональная версия отличается наличием отладчика.

Поддержка OpenCL включена в ATI/AMD Catalyst 11.x
До версии Catalyst 10.10, для поддержки OpenCL нужны были девелоперские драйвера, которые входили в Stream SDK. Начиная с 10.10 - появилась специальная версия с включенным OpenCL, которая ставилась как обычные драйвера, но пользователю нужно было специально скачивать эту версию.

В 11.1 (11.0 я пропустил и потому не знаю) все наоборот - в стандартный драйвер поддержка OpenCL входит, но если вам оно не надо, то можно скачать обрезанную версию на 20 мегабайт поменьше.

Другими словами, пользователя можно просить "поставь стандартные драйвера 11.x и будет тебе счастье.

Берут из стандартного места для Catalyst

AMD выпустил готовый комплект преподавателя для курса по OpenCL
AMD/ATI предлагает преподавателям готовый комплект из 13 презентаций и трех примеров кода (два примера - микроскопические, один - NBody), предназначенный для чтения лекций в университетах.

Про качество мне судить трудно, но посмотреть всяко имеет смысл.

Берут отсюда

Intel: OpenCL для CPU (alpha)

Tags: 

Inel выпустил альфа-версию OpenCL для CPU.

Целиком поддерживаю это начинание. Конечно, у AMD такое уже есть полтора года как, но на Intel несколько больше надежды, что это станет стандартной частью системы или, как минимум, удобным redistributable (а не частью "драйвера видеокарты", притом не общего, а отдельной версии). А для всяких GPGPU-решений появится удобный fallback на CPU.

ATI Catalyst & OpenCL

Tags: 

Начиная с Catalyst 10.10, пользователям доступна расширенная версия драйверов видеокарт ATI: "Accelerated Parallel Processing (APP) Technology Edition".

Теоретически это означает, что для запуска OpenCL-кода на пользовательской машине пользователю больше не нужно качать и ставить Stream SDK.

В настоящий момент у меня ATI-карты в машине нет, но и без нее драйвер можно поставить, при этом поставится только рантайм от Stream SDK, которого достаточно для получения OpenCL на CPU. Работает. Есть надежда, что с видеокартой тоже будет работать.

OpenCL 1.1

Tags: 

Новостные сайты массово написали, что Khronos Group выпустила спецификации OpenCL 1.1 (вот, скажем, HardOCP).

Удивительно, но на сайте Khronos об этом знаменательном событи не написано (хотя вот на HardOCP лежит 3-страничный пресс-релиз). Ну да новость сегодняшняя, сначала пресс-релиз, потом сайт...уже написано, за час справились. К сожалению, удобного содержательного диффа не обнаружилось (кроме пресс-релиза), чтобы понять разницу - нужно 300+ страниц спецификации честно прочитать.

Из пресс-релиза, естественно, ничего существенного понять нельзя.

Но есть в этом и содержательная сторона: NVidia моментально прислала письмо, что у них есть Conformance Candidate (в письме, впрочем, в некоторых местах написано что OpenCL 1.0, ну так торопились), который доступен на девелоперском сайте.

И действительно, доступен. В числе прочего, там лежат виндовые драйвера версии 258.19, которые, как я понимаю, новее и текущих доступных на оф-сайте бета-драйверов 257.15 и прилагавшихся к свежему Нексусу 257.19.

А значит можно потестироваться на предмет, исправились ли странности бета-драйверов 257.15.

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

Tags: 

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

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

OpenCL, NVidia, ATI и все все все....

Вопрос о совместимости OpenCL между железом разных производителей - является необычайно волнительным. Понятно, что задумывалось все совместимым, но насколько это получилось и сколько граблей разложено на пути к этой совместимости - отдельный интересный вопрос, который перешел в практическую плоскость сразу после выпуска ATI Stream SDK 2.0 beta 4, где появилась поддержка OpenCL на графическом адаптере. До того поддержка OpenCL на PC была только у NVidia и вопрос был сугубо теоретическим.

Как только мне в руки попал Radeon HD5870, так сразу захотелось тему исследовать... и в первом приближении я ее изучил.

content classify: 

Tags: 

AMD и OpenCL

Tags: 

Последняя бета-версия Stream SDK поддерживает OpenCL для GPU. Вот, собственно, весь список нововведений:

  • First beta release of ATI Stream SDK with OpenCL GPU support.
  • ATI Stream SDK v2.0 OpenCL is certified OpenCL 1.0 conformant by Khronos1.
  • Added Microsoft Windows 7 support.
  • Added native Microsoft Windows 64-bit support.
  • Float comparisons in kernels no longer produce a runtime error.
  • Various other issues from previous v2.0 beta releases have been resolved.

Берут тут: AMD Stream SDK 2.0 beta

Новости OpenCL

Tags: 

С некоторым опозданием, но:

Mac OS X 10.6 Манул Snow Leopard
Вышла, OpenCL входит в поставку, работает, хотя местами и странно (не для всех примеров удалось собрать Release-вариант, для некоторых собирается только отладочный.
Правда не безумно быстро, я смотрел на пример NBody: на старом (двухлетнем) MacBook Pro с Geforce 8600M он медленнее, чем на CPU, а поддерживаемая конфигурация GPU+CPU медленнее, чем CPU отдельно, вероятно в силу пересылок. На более новом железе выигрыш должен быть больше, надо бы собрать на пробу бокс с ATI 4870
Приятно то, что и без графического акселератора оно вроде бы работает.
ATI Stream SDK 2.0 Beta2
ATI Stream SDK 2.0 Beta2: First public beta release of ATI Stream SDK with OpenCL CPU support. The OpenCL 1.0 conformance logs from this release have been submitted to the Khronos OpenCL Working Group.
Поддержаны Windows и Linux, про MacOS см. выше.

Pages

Subscribe to RSS - OpenCL