有没有可能从Linux内核模块运行CUDA或OpenCL应用程序?
我发现一个项目提供了这个功能,但它需要一个用户空间助手才能运行CUDA程序。(https://code.google.com/p/kgpu/)
虽然这个项目已经避免了用户和内核空间之间的冗余内存复制,但我想知道是否有可能完全避免用户空间?
编辑: 让我扩展一下我的问题。我知道内核组件只能调用内核和其他内核组件提供的API。所以我不打算直接调用OpenCL或CUDA API。 最终,CUDA或OpenCL API必须调用图形驱动程序才能实现其魔力。很可能,这个接口是完全非标准的,每次发布都会改变等等…
但是假设你有一个已编译好的OpenCL或CUDA内核需要运行。在实际运行内核之前,OpenCL/CUDA用户空间库是否需要进行一些重要工作,还是它们只是驱动程序接口的轻量级包装器?
我也知道用户空间助手可能是做到这一点的最佳选择,因为直接调用驱动程序很可能会在新的驱动程序发布时出现错误…
虽然这个项目已经避免了用户和内核空间之间的冗余内存复制,但我想知道是否有可能完全避免用户空间?
编辑: 让我扩展一下我的问题。我知道内核组件只能调用内核和其他内核组件提供的API。所以我不打算直接调用OpenCL或CUDA API。 最终,CUDA或OpenCL API必须调用图形驱动程序才能实现其魔力。很可能,这个接口是完全非标准的,每次发布都会改变等等…
但是假设你有一个已编译好的OpenCL或CUDA内核需要运行。在实际运行内核之前,OpenCL/CUDA用户空间库是否需要进行一些重要工作,还是它们只是驱动程序接口的轻量级包装器?
我也知道用户空间助手可能是做到这一点的最佳选择,因为直接调用驱动程序很可能会在新的驱动程序发布时出现错误…