Я прочел эту ссылку - https://wiki.debian.org/ru/AtiHowTo и решил установить OpenCL.Как настроить OpenCL на видеокарта AMD с драйвером opensource?
the r600g driver still have to load proprietary microcode into the GPU to enable hardware acceleration. This firmware is usually included in the kernel, but is packaged separately in Debian.
Итак, я установил прошивку:
# apt-show-versions firmware-linux-nonfree firmware-linux
firmware-linux-nonfree:all/sid 0.40 uptodate
firmware-linux:all/sid 0.40 uptodate
Затем я обновить версию ядра:
uname -v
#1 SMP PREEMPT RT Debian 3.12.8-1 (2014-01-19)
и проверили флаги ядра:
grep DRM_RADEON /boot/config-$(uname -r)
CONFIG_DRM_RADEON=m
# CONFIG_DRM_RADEON_UMS is not set
grep AGP /boot/config-$(uname -r)
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_SIS=y
CONFIG_AGP_VIA=y
Также я версия установки Xserver достаточно недавно:
# apt-show-versions xorg
xorg:amd64/sid 1:7.7+5 uptodate
Я выбираю как драйвер RADEON:
You most certainly are using wheezy's xserver-xorg-core which does not provide xorg-video-abi-6.0 any more, and radeonhd is not available for the newer xorg-video-abi because it has been removed from Debian
# apt-show-versions xserver-xorg-video-radeon
xserver-xorg-video-radeon:amd64/sid 1:7.3.0-1 uptodate
Это дает мне OpenGL работу:
$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV770
OpenGL core profile version string: 3.1 (Core Profile) Mesa 10.1.0-devel (git-81144c0 saucy-oibaf-ppa+curaga)
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.0-devel (git-81144c0 saucy-oibaf-ppa+curaga)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
Я пытаюсь использовать приложение, которое работает с OpenCL.
Эти программы работает нормально на CPU:
$ mono scallion/bin/Debug/scallion.exe parallax
Cooking up some delicions scallions...
Putting 1 patterns into 1 buckets.
Using kernel optimized from file kernel.cl (Optimized4)
Using work group size 1
Compiling kernel... done.
LoopIteration:10 HashCount:167.77MH Speed:7.8MH/s Runtime:00:00:21
Predicted:19:38:20
Stopping and shutting down...
LoopIteration:11 HashCount:184.55MH Speed:7.8MH/s Runtime:00:00:23
Predicted:19:36:58 init: 2687ms/1 (2687ms, 0.37/s)
generate key: 153ms/6 (25.5ms, 39.22/s)
cpu precompute: 7ms/6 (1.17ms, 857.14/s)
total without init: 23706ms/1 (23706ms, 0.04/s)
set buffers: 0ms/11 (0ms, 0/s)
write buffers: 0ms/11 (0ms, 0/s)
read results: 23699ms/11 (2154.45ms, 0.46/s)
check results: 0ms/11 (0ms, 0/s)
7.78 million hashes per second
Stopping and shutting down...
Но я не могу обнаружить GPU:
$ mono scallion/bin/Debug/scallion.exe
Usage: scallion [OPTIONS]+ regex [regex]+
Options:
-l, --listdevices Lists the devices that can be used.
-d, --device=VALUE Specifies the opencl device that should be used.
Там нет GPU в списке устройств:
$ mono scallion/bin/Debug/scallion.exe -l
Id:0 Name:Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz
PreferredGroupSizeMultiple:1 ComputeUnits:4 ClockFrequency:2000
MaxConstantBufferSize:65536 MaxConstantArgs:8 MaxMemAllocSize:2147483648
Я не могу найти инструкции по настройке OpenCL:
apt-get install libclc-r600
apt-show-versions libclc-r600 ocl-icd-libopencl1
libclc-r600:all/saucy 0~git20140101-1~gd~s uptodate
ocl-icd-libopencl1:amd64/sid 2.1.3-2 uptodate
и после запуска приложения я получаю сообщение об ошибке:
~/github.com/lachesis/scallion$ mono ./scallion/bin/Debug/scallion.exe -l
Unhandled Exception:
System.InvalidOperationException: ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds() [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds() [0x00000] in :0
at scallion.CLRuntime.GetDevices() [0x00000] in :0
at scallion.Program.ListDevices() [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException:
ErrorCode:'-1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] in :0
at scallion.CLDeviceInfo.GetPlatformIds() [0x00000] in :0
at scallion.CLDeviceInfo.GetDeviceIds() [0x00000] in :0
at scallion.CLRuntime.GetDevices() [0x00000] in :0
at scallion.Program.ListDevices() [0x00000] in :0
at scallion.Program.Main (System.String[] args) [0x00000] in :0
The error code values are defined in opencl.h It look like your platform is not configured properly. CL_PLATFORM_NOT_FOUND_KHR (-1001) error from clGetPlatformIDs. That's because you do have the dispatcher, but no actual OpenCL drivers."
После
sudo apt-get install libopencl1-mesa
$ find/-iname «libMesaOpenCL.so*» 2>/dev/null
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1.0.0
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
В файле конфигурации должен быть
cat /etc/OpenCL/vendors/mesa.icd
libMesaOpenCL.so
Ошибка
fatal error: cannot open file '/usr/lib/clc/rv770-r600--.bc': No such file or directory
Как это сделать?
Вы смешиваете средство визуализации программного обеспечения LLVMpipe с Gallium, это всего лишь один из многих возможных рендерингов Gallium, в этом случае он использует графический процессор. Об этом говорит «Gallium 0.4 на AMD RV770», по моему он говорит «Gallium 0.4 на AMD REDWOOD». Когда используется рендеринг программного обеспечения LLVMpipe, вместо этого он читает «Gallium 0.4 on llvmpipe» – TechZilla
Кроме того, он действительно использует Free Drivers, из которых R600 является специфическим драйвером, который охватывает его семейство карт. Небезопасный указатель на этом packagename предназначен только для требуемого прошивки. Я бы сказал, однако, весь процесс излишне жесток из-за чрезвычайно медленных темпов обновлений mesa дистрибутива. Не говоря уже о всегда ужасном состоянии графической документации mesa/distro. – TechZilla