c - 在不使用任何库(如 cuda 或 opencl)的情况下对 gpu 进行编程?

标签 c cuda opencl gpu gpgpu

我想知道有没有一种方法可以在不使用任何库或 API 的情况下使用 GPU 进行计算(例如两个矩阵的乘法)。我只想用 C 编写一个程序,我不想使用 CUDA 或 OpenCL 或类似的东西。

最佳答案

真正简短的回答是,不,你不能那样做。我熟悉的所有标准“C 或 C++ 类”GPU 编程模型都要求您使用 API(OpenCL 或 OpenCL 等计算 API,或 OpenGL 和 Direct3D 等图形 API)来管理设备并加载和执行着色器或在目标 GPU 上并行计算内核。

关于废除使用底层硬件 API 的需要的最接近(可能唯一)的东西是 GPU 的编译辅助并行性,例如 OpenACC .在那里,您可以使用预处理器指令来修饰 C、C++ 或 Fortran 代码,并依靠编译器为设备生成并行代码。底层计算或图形 API 和驱动程序仍然存在并仍在使用,但您看不到它们。

关于c - 在不使用任何库(如 cuda 或 opencl)的情况下对 gpu 进行编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866389/

相关文章:

c - 使用 fprintf 的奇怪 SEGFAULTS

c - 使用 L-System 优化 GNU 解析器

cuda - 这是 CUDA 中的错误吗? (遇到非法内存访问)

cuda - CUDA 流是否与设备相关?以及如何获得流的设备?

c++ - Cuda有效地从字节数组复制到不同大小的共享内存元素

struct - OpenCL floatn 与自定义结构有何不同

vim - OpenCl.vim 文件错误

控制流程理解

谁能解释一下 ptr+1 和 ptr[0]+1 之间的区别

hadoop - OpenCL 与 Hadoop