This page should be a starting point to help you configure your GPU card for john the ripper under linux
As a side note, remember that under linux you have two kind of video card drivers:
If you want to use OpenCL / GPU computing at the moment you need to use the driver provided by the vendor and disable the open source one
One of the main problem you may incour when trying to enable GPU computing on you linux machine could be the presence of the open source driver . This driver, nouveau for nvidia and radeon for amd cards, will enable framebuffer at boot time .
While framebuffer is a marvellous mode, that makes your text console pretty, on the other side it locks your GPU resources and you won't be able to rmmod the driver to enable the proprietary one.
Worst than that: even if you specify nvidia/fglrx as driver for your X11 session it won't be used because nouveau/radeon gets in the middle.
The only solution is to either blacklist nouveau/radeon driver in /etc/modprobe.d/blacklist.conf either from boot time; look on your favourite distro forums for instruction on how to do it.
AMD, formerly ATI, needs an X server running and a user logged in to be able to use OpenCL. This means your X server is configured to use “fglrx” as a driver and you use lightdm / xdm / kdm / gdm at startup.
If you need to use OpenCL from a remote session you might want to enable autologin on lightdm as suggested in this url or, if you feel, just edit /etc/lightdm/lightdm.conf
and add the following content:
[SeatDefaults] autologin-user=<YOUR USER> autologin-user-timeout=0 user-session=ubuntu greeter-session=unity-greeter
if you connect from remote with ssh beware of X11 forwarding which can be enabled/disabled with -X/-x .
if you enabled it accidentally and need to disable for that session just do unset DISPLAY
When in doubt just do a clinfo to see if everything is ok, you should get something like this
samu@cthulhu:~$clinfo Number of platforms: 1 Platform Profile: FULL_PROFILE Platform Version: OpenCL 1.1 AMD-APP (898.1) Platform Name: AMD Accelerated Parallel Processing Platform Vendor: Advanced Micro Devices, Inc. Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Name: AMD Accelerated Parallel Processing Number of devices: 2 Device Type: CL_DEVICE_TYPE_GPU
key here is the CL_DEVICE_TYPE_GPU this means you have a gpu capable of OpenCL
Nvidia is rather stable and simple to setup; nvidia is the driver you need to use to enable OpenCL.
if nouveau is enabled before nvidia you need to reboot your machine and either add
nouveau.blacklist=yes
as kernel boot option (works for live cd too) or add to /etc/modprobe.d/blacklist.conf
blacklist nouveau
Since you may want to use nvidia from remote with ssh and without having X already running or configured you might need to do
modprobe nvidia
and
nvidia-smi -q
before being able to use it
if you have a AMD card and AMD cpu you might change your OpenCL code to either run on CPU or on GPU.
This can help on tracking problem debug with gdb as suggested by AMD
Keep in mind that working only on CPU could lead to some misbehaviours due to having different bus transfer
Dual GPU at the moment could be a bit messy: linux distribution are not yet ready with packages for Nvidia and AMD, tough maintainers are trying to fix it. For this reason at the moment, mixing both drivers and libraries could lead you to strange side effects; nothing to worrry about, but you could end spending a lot of time trying to figure out which correct order of libraries to specify when using Nvidia and which one to use when using AMD; it's strongly suggested to do that only if you have a lot of free time and you know what you are doing.
In case you want a mixed system it is strongly suggested to have Xorg attached to AMD and do as Lukas suggest:
I have xorg.conf with fglrx. After X's starts up I do: modprobe nvidia and nvidia-smi -q Second step does some magic, without it my gtx is not available for cuda or opencl.
Having dual AMD or dual Nvidia is simpler.