After spending a lot of time trying to get CUDA Toolkit working, I came up with a very weird situation were the Samples (in special the SobelFilter) is working. But a simple code that I run in Nsight does not appear to work.
I got a Lenovo Ideapad U410 with a Gefore 610M (Optimus Technology). That’s why I’ve installed the Bumblebee project (that it’s working fine).
I run the example like this:
optirun -b none ./SobelFilter
And it works just fine. But when I run my code (tested in other GPU) the image does not appear. It only shows a white image with a lot of black dots.
Another weird thing is that
optirun -b none nvidia-settings
does not appear to work.
Hope you can help me, I’m trying to finish a course of GPU and I need my computer to program.
The option for -b none means that you are not using graphics rendering. If you intend to use OpenGL or some other API that renders to an X screen, just a simple optirun will do it. On some complex situations, I’ve found I have to use the ‘-b none’ parameter, for example, loading MATLAB and running a MEX file with CUDA code, otherwise I saw strange error messages when attempting to run certain MATLAB operations and my CUDA code did not work.
As for nvidia-settings, you need to specify the X screen explicitely. The default for Bumblebee is :8, so you’d call it as:
You were right with the nvidia-settings. My problem is that I’m not using OpenGL but OpenCV, and when I create a display window and I try to show the output of a image filtered by the GPU, it’s not working properly. I see a white screen with some black dots.
But the OpenGL example that comes with CUDA (SobelFilter) works just fine. I don’t get what I’m doing wrong, because the same code works properly on a non-Optimus GPU.