Will CUDA work with FreeBSD?

Anyone know if the linux CUDA will run on FreeBSD 6.x?

There are no current plans to ship a FreeBSD CUDA driver.

I would also like to see CUDA support FreeBSD. That is a very fast and powerful OS that doesn’t get nearly enough attention from hardware companies (the same goes for Solaris).

Maybe something can be done in the future, once the development team isn’t fighting to get the finalized Linux / WinXP drivers out the door?

The best option would be cuda support out of box in all platform drivers. The unified driver architecture will help here.


We are doing a lot of heavy computations also, and we also use FreeBSD. Without a doubt, if Nvidia were to release Cuda for FreeBSD, we would rush and buy the Tesla servers !

I’d also like to see Cuda toolkit/sdk/drivers for FreeBSD. FreeBSD is a nice platform, which you can adapt your own hardware setup to (without the need to ship the patches/modifications) and that makes it perfect for integrated solutions.

Yes, I would like to see it running on FreeBSD as well. This is a fast and stable platform, and good for university, research, and heavy duty use as well.

is BSD really faster than linux command line?

i thought that the advanced management system of linux would outperform BSD any moment…

What about that?

I don’t speak Japanese (or at least I think that’s Japanese), but… he’s chrooting to a stage 3 Gentoo install from BSD. Maybe it works, maybe it doesn’t, but if it breaks there’s absolutely nothing we can do to help you. This is about as far away from supported as you can get…

Is there any news about CUDA support on FreeBSD?

+1 for a [free,open]BSD cuda (and driver) support.

Can ANY ONE shoot this fish? PLEASE~

I am more interested in running FreeBSD out of the CUDA environment so I can turn the Core into an embedded peer…


I too, would like to see a CUDA driver on FreeBSD.

+1 for that! It would definitely be very useful if CUDA was available for FreeBSD

The fact is: FreeBSD NVidia driver DOES support CUDA. It’s libcudart we need to run CUDA properly on FreeBSD.

I’ve compiled deviceQueryDrv from CUDA SDK on Debian Linux, then copied it to FreeBSD 7.2 with NVidia driver 190.42 (not in ports yet BTW, installed it myself), run and got the following:

uname -a

FreeBSD av429635.oops 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Sun May 10 15:32:51 MSD 2009 root@av429635.oops:/usr/src/sys/i386/compile/ALECN72 i386

env LD_LIBRARY_PATH=/compat/linux/lib:/lib:/usr/lib ./deviceQueryDrv

CUDA Device Query (Driver API) statically linked version

There is 1 device supporting CUDA

Device 0: “GeForce 9400 GT”

CUDA Driver Version: 2.30

CUDA Capability Major revision number: 1

CUDA Capability Minor revision number: 1

Total amount of global memory: 536150016 bytes

Number of multiprocessors: 2

Number of cores: 16


While, when I’ve run deviceQuery (it uses CUDA runtime, as opposite for CUDA driver interface in deviceQueryDrv), I’ve got:

env LD_LIBRARY_PATH=/compat/linux/lib:/lib:/usr/lib ./deviceQuery

CUDA Device Query (Runtime API) version (CUDART static linking)

There is no device supporting CUDA.

Device 0: “Device Emulation (CPU)”


So, you see: driver itself reports precense of CUDA device. And, if you will program using driver interface, you will get CUDA running under FreeBSD. Though, it’s too low-level interface.

So: we need CUDA runtime lib for FreeBSD!!!

Maybe you can try with an example that uses the driver api? devicequery does not run a kernel at all, so you did not really have cuda ‘running’ (yet)


Good point.

I’ve tried matrixMulDrv from CUDA SDK, and it failed:

env LD_LIBRARY_PATH=/compat/linux/lib:/compat/linux/usr/lib:/lib:/usr/lib:/usr/local/lib ./matrixMulDrv

Using device 0: GeForce 9400 GT

cuSafeCallNoSync() Driver API error = 0999 from file <matrixMulDrv.cpp>, line 72.

Line 72 of matrixMulDrv.cpp is:

[indent]cutilDrvSafeCallNoSync(initCUDA(argc, argv, &matrixMul ));[/indent]

I’ve tracked it down and found, that device initialization itself passed OK.

What’ve failed was creating of Cuda context, precisely line 204 of matrixMulDrv.cpp:

[indent]CUresult status = cuCtxCreate( &cuContext, 0, cuDevice );[/indent]

Bad news :(

Also it’s bad that cuCtxCreate() returns code 999 means “Unknown error”, and there’s no sources for libcuda - so we can’t track it further in other way than debugging.

Maybe I’ll fight my laziness and will do gdb tracking :)