【发布时间】:2014-03-18 03:03:11
【问题描述】:
是否可以从 Linux 内核模块运行 CUDA 或 OpenCL 应用程序? 我找到了一个提供此功能的项目,但它需要一个用户空间助手才能运行 CUDA 程序。 (https://code.google.com/p/kgpu/)
虽然这个项目已经避免了用户和内核空间之间的冗余内存复制,但我想知道是否可以完全避免用户空间?
编辑: 让我扩展我的问题。我知道内核组件只能调用内核和其他内核组件提供的API。所以我不想直接调用 OpenCL 或 CUDA API。 CUDA 或 OpenCL API 最终必须调用图形驱动程序才能使其神奇发生。很可能这个接口是完全非标准的,随着每个版本的变化等等......
但假设您有一个编译好的 OpenCL 或 CUDA 内核,您想运行它。 OpenCL/CUDA 用户空间库在实际运行内核之前是否做了一些繁重的工作,或者它们只是驱动程序接口周围的轻量级包装器?
我也知道用户空间助手可能是这样做的最佳选择,因为直接调用驱动程序很可能会因新的驱动程序版本而中断...
【问题讨论】:
标签: cuda linux-kernel opencl gpgpu