我试图编写一个可以通过CUDA使用GPU的强大功能的linux驱动程序 . 基本的Makefile到处都是这样的 -
obj-m = hello.o
all:make -C / lib / modules / $(shell uname -r)/ build M = $(PWD)模块
clean:make -C / lib / modules / $(shell uname -r)/ build M = $(PWD)clean
无论如何我可以把nvcc放在那里吗?基本上我想让我的.cu文件成为我的linux内核的一部分 .
1 回答
你要做的事情是不可能的 .
CUDA API是用户空间API . 基本的Linux内核架构使得从内核空间代码调用任何用户空间API都是非法的 . 这包括CUDA . 如果您想将GPU用作OS内核服务的一部分,则需要通过用户空间内核接口(如FUSE)来完成 .