I am trying to run my OpenCL application at my Intel CPU and Nvidia GPU at the same time for load balancing purposes. But i have the problem that only the Nvidia Plattform is detected.
I use this cl.hpp call:
std::vector<cl::Platform> m_platforms;
cl::Platform::get(&m_platforms);
My system setup:
Linux Arch 3.14.6-1-ARCH
Intel Haswell 4770K
Nvidia 250GTS
installed packages:
nvidia-libgl 337.25-1
opencl-nvidia 337.25-1
nvidia 337.25-1
nvidia-utils 337.25-1
mesa 10.2.1-1
opencl-headers12
intel-opencl-sdk 2014R1-2
opencl-icd 1.2.11.0-4
Both platforms (Intel, Nvidia) have there .icd files in /etc/OpenCL/Vendors. So I don't know what i can try to finally get an Intel CPU OpenCL platform recognized. Maybe you have some ideas?
For now, it would be best to uninstall both of these packages (intel-opencl-sdk and intel-opencl-runtime) and install beignet from the community repository.
sudo pacman -S --needed beignet
The package provides the same functionality and allows you to use the Intel GPU cores also.
I can confirm that it coexists well with other OpenCL platforms such as that provided by NVIDIA, as tested on an Optimus-capable ASUS G750JM. Currently switching via bbswitch and offloading GL-renders via PRIME and primus.
Some pipelines (pyrit) can use OpenCL simultaneously on both platforms, boosting the performance noticeably.
I found an additional package called "intel-opencl-runtime". The intel-opencl-sdk contains the icd file, but it seems not to be enough to be able to run OpenCL apps with the Intel platform. To be able to run OpenCL using the Intel platform it was necessary to also install the above mentioned runtime package.
Related
Linux (Debian Sid x64), kernel 4.14, Nvidia GPU. I am unable to run Android emulator on open Nouveau drivers. There is no any error message that I can post, jus segmentation fault. When I choose software rendering, it works but unusable (it runs very slow).
Does anybody know any workaround for that, or I am forced to use official Nvidia drivers?
i had install AMDAPPSDK-3.0 for my laptop with intel i5 3rd generation configuration. i have no GPU other than my intel's processors inbuilt graphics card.
i had installed the SDK in the below way:
./AMD-APP-SDK-v3.0.130.136-GA-linux64.sh
my .bashrc file has:
**export LD_LIBRARY_PATH=/home/roadeo/AMDAPPSDK-3.0/lib/x86_64/
export AMDAPPSDKROOT="/home/roadeo/AMDAPPSDK-3.0"
export OPENCL_VENDOR_PATH="/home/roadeo/AMDAPPSDK-3.0/etc/OpenCL/vendors/"**
When i run clinfo to check whether OPENCL is installed properly or not. But i get this error:
**terminate called after throwing an instance of 'cl::Error'
what(): clGetPlatformIDs
Aborted core dumped.**
after googling i with frustration install fglrx using sudo apt-get. When i run clinfo i get a lot of details about opencl versions, vendor etc.. I don't know whether is it required or not.
What i m doing wrong kindly suggest.
I'm not familiar with AMD drivers on Linux, but it seems to me that installing the SDK only installed a bunch of examples, header files, etc. but did not actually install any OpenCL runtimes. Installing fglrx probably installed the CPU runtime, in which case the only device you'll see listed is your CPU. If you want to write OpenCL code for your GPU, you'll need to look at Beignet: https://freedesktop.org/wiki/Software/Beignet/
I have a HP Envy 4 1025tx machine with Ubuntu 12.10.
My blender doesn't seem to detect the dedicated G-Card ATI Radeon 7670m.
But it does detect it on windows. Should I have to install any linux drivers
or does blender doesn't fully support openCL on linux. Or shoulf I manually
recompile the code?
How should I fix it?
open the terminal and use the command: CYCLES_OPENCL_TEST=true
this enable the opencl support to opencl on blender
I'm accessing a remote machine that has a good nVidia card for CUDA computing, but I can't find a way to know which card it uses and what are the CUDA specs (version, etc.). I used the "lspci" command on the terminal, but there is no sign of a nvidia card. I'm pretty sure it has a nVidia card, and nvcc seems to be installed.
But I really want to figure out the card and CUDA specs. Any ideas?
Thanks!
If you can find where the CUDA SDK directory has been installed then you can just run the deviceQuery example which will tell you all you need to know and more. The executable should be at $(SDK)/C/bin/linux/release/deviceQuery - if it's not there then you may need to build the samples first:
$ cd $(SDK)
$ make
$ ./C/bin/linux/release/deviceQuery
The CUDA SDK directory is typically named NVIDIA_GPU_Computing_SDK (more recent CUDA versions) or just NVIDIA_CUDA_SDK (older CUDA versions).
If you have all of Cuda installed, then just run:
nvidia-smi
How to OpenGL on Linux Platform Without X-Window System, can I send OpenGL Graphics Directly to Framebuffer Device?
There Is Project Named DirectFB (Direct FrameBuffer). With DirectFB We can do this but DirectFB needs for driver for each hardware and I want to user a graphic card that only have Linux driver.
This is how i did it in my ubuntu 11.04 in detail:
1- Install the dependencies using the command:
sudo apt-get install xutils-dev libpciaccess-dev x11proto-dri2-dev x11proto-gl-dev libxdamage-dev libxfixes-dev
2- The mesa library needs libdrm version >= 2.4.24 which is not available in the ubuntu 11.04 repository (older version is available) so you have to download the source and build it using the following commands:
./configure
make
make install
3-Download mesa library and then compile it using the following commands:
./configure --prefix=install_directory
make realclean
make linux-fbdev
sudo make install
be careful when you choose the install_directory so that you don't overwrite the system's mesa library.
after that compile your application using the options : -lGL -lOSMesa -ldl -L'install_directory/lib' -I'install_directory/include'
Apparently is possible to have SDL running without X.
Basically, your kernel should have framebuffer support and you could use SDL on top of DirectFB.
These threads are ok:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2006-October/058305.html
http://forums.libsdl.org/viewtopic.php?t=4079
As you said, you need a driver to do this. 99.9% of all Linux graphics drivers use X11, so unless you have a DirectFB OpenGL driver for your hardware, you are stuck with using X11.
I use the SDL (Simple Direct Media Layer) for OpenGL programming in Linux. This site has some nice tutorials to get you set up. One advantage of using SDL is that it will port across platforms, so once you get something running on Linux, it'll transfer right over to Windows so long as you have SDL installed there.
You can use Mesa for framebuffer-based software rendering.