Установка/инициализация OpenCL

Всем привет. Пробую новую технологию. У меня Win XP 32, видеокарта 9400gt, которая не поддерживает OpenCL. Поэтому ставлю streamsdk_2-1_xp32 и линкую atiocl.dll в Delphi 2010. Все прекрасно работает с параметром CL_DEVICE_TYPE_CPU. Однако есть такие вопросы:

1. На компе без streamsdk какие действия нужно произвести чтобы заработал OpenCL. Если я просто таскаю с .exe файлом atiocl.dll то она линкуется и инициализируется контекст, однако при вызове функции clBuildProgram возвращается ошибка CL_BUILD_PROGRAM_FAILURE. После установки streamsdk все начинает работать как часы. Проверено на winxp_32/win7_64. Стало быть нужно что-то еще?

2. Касательно OpenCL.dll - что это такое и зачем это нужно? В атрибутах PE написано что это Khronos OpenCL ICD. Может это от NVIDIA? Однако когда линкую эту OpenCL.dll то вызов функции clCreateContextFromType c любым параметром возвращает CL_INVALID_PLATFORM. Я так понимаю что эмуляции на CPU у NVIDIA нет?

3. Cudatoolkit_3.1_win_32 это аналог streamsdk или там инструменты только для CUDA ?

4. Есть такой ключ в реестре:
[HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors]
"nvcuda.dll"=dword:00000000
"atiocl.dll"=dword:00000000
"atiocl64.dll"=dword:00000000
для чего он нужен, что означает?

Пока вроде все. Кто что-то знает - ,буду благодарен.

Forums: 

Касательно OpenCL.dll: Я так

Касательно OpenCL.dll:
Я так понял это что-то типа маршрутизатора, то есть чтобы приложение могло использовать разные платформы(AMD, nVidia). Вызовая ф-ий из OpenCL.dll эта длл в свою очередь вызывает теже самые ф-ии из платформозависимых длл(nvcuda.dll, atiocl.dll, atiocl64.dll). Как именно выбирается нужная ДЛЛ - я не в курсе.
Касательно Cudatoolkit_3.1_win_32:
Это SDK для разработки приложений использующих CUDA и OpenCL.

Почему только с параметром CL_DEVICE_TYPE_CPU работает? Видеокарта не поддерживает?

Какими заголовочными файлами пользуетесь для разработки OpenCL под Delphi 2010? Выложите ссылку, буду премного благодарен. Сам недавно начал изучать.