1. Установил AMD ATI Stream SDK.
Не знаю точно, что это такое (не читал ничего, даже ликбеза). Насколько я представляю, это набор для создателей ПО, способного использовать устройства AMD.2. Попытался (успешно) скомпилировать проект-пример "MonteCarloAsianMultiGPU" (samples/opencl/cl/MonteCarloAsianMultiGPU) из этого набора. Вроде, поскольку этот пример лежит в папке "cl" и сами исходные файлы там с расширением ".cl" - то, видимо (предполагаю), что это - исходники на яз. OpenCL.
3. Запускаю:3.1. Справка этой программы MonteCarloAsianMultiGPU --help
Usage
-h, --help Display this information
--device [cpu|gpu] Execute the openCL kernel on a device
-q, --quiet Quiet mode. Suppress all text output.
-e, --verify Verify results against reference implementation.
-t, --timing Print timing.
--dump [filename] Dump binary image for all devices
--load [filename] Load binary image and execute on device
--flags [filename] Specify filename containing the compiler flags to build kernel
-p, --platformId [value] Select platformId to be used[0 to N-1 where N is number platforms available].
-v, --version AMD APP SDK version string.
-d, --deviceId [value] Select deviceId to be used[0 to N-1 where N is number devices available].
-c, --steps Steps of Monte carlo simulation
-P, --initPrice Initial price(Default value 50)
-s, --strikePrice Strike price (Default value 55)
-r, --interest interest rate (Default value 0.06)
-m, --maturity Maturity (Default value 1)
-i, --iterations Number of iterations to execute kernel
3.2. Для GPU:
date +%s.%N; ./MonteCarloAsianMultiGPU --device cpu -i 10; date +%s.%N;
1433279822.222670652
Platform 0 : Advanced Micro Devices, Inc.
sigma values
0.01 0.11 0.21 0.31 0.41 0.51 0.61 0.71
Platform found : Advanced Micro Devices, Inc.
Selected Platform Vendor : Advanced Micro Devices, Inc.
Device 0 : Oland Device ID is 0x9c6d60
Executing kernel for 10 iterations
-------------------------------------------
price
0 0.249146 1.12356 2.15992 3.21816 4.34214 5.41512 6.56071
vega
0 6.75283 9.91366 10.6759 10.8493 11.0062 10.9357 10.9872
1433279827.808361172
3.3. Для ЦП:
date +%s.%N; ./MonteCarloAsianMultiGPU --device cpu -i 10; date +%s.%N;
1433279971.474820069
Platform 0 : Advanced Micro Devices, Inc.
sigma values
0.01 0.11 0.21 0.31 0.41 0.51 0.61 0.71
Platform found : Advanced Micro Devices, Inc.
Selected Platform Vendor : Advanced Micro Devices, Inc.
Device 0 : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz Device ID is 0x24530b0
Executing kernel for 10 iterations
-------------------------------------------
price
0 0.249147 1.12356 2.15992 3.21816 4.34214 5.41512 6.56071
vega
0 6.75287 9.91367 10.6759 10.8493 11.0062 10.9357 10.9873
1433280023.908647694
4. Выводы.4.1. Т. е., (какая-то, наугад взятая) программа, использующая параллельные выч-ния, написанная на OpenCL успешно запускается, работает и выдаёт какие-то рез-ты (я так понимаю, она какие-то шаблонные вычисления производит N раз). Об ошибке не сообщает (наверное, всё нормально).
4.2. Эта программа успешно опознаёт GPU как устройство пригодное для паралл. выч-ний. При этом, при указании в аргументах, какое именно устройство использовать (ЦП или GPU), она указанные устройства различает:
Device 0 : Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz Device ID is 0x24530b0
либо
Device 0 : Oland Device ID is 0x9c6d60
4.3. Время выполнения:
Для ЦП: 52,4338276386 с
Для GPU: 5,5856904984 (гораздо быстрее, как и должно быть при успешном использовании GPU для вычислений).