我想知道有没有一种方法可以在不使用任何库或API的情况下使用GPU进行计算(例如,乘以两个矩阵)。我只想用C编写一个程序,我不想使用CUDA或OpenCL或类似的东西。编程一个GPU而不使用任何类似cuda或opencl的库?
回答
真的很简短的答案是否定的,你不能那样做。我熟悉的所有标准“C或C++”GPU编程模型都要求您使用API(OpenCL或OpenCL等计算API,或OpenGL和Direct3D等图形API)来管理器件并加载并执行着色器或在目标GPU上并行计算内核。
关于废除使用底层硬件API的最近(可能是唯一)的事情是GPU的编译辅助并行机制,如OpenACC。在那里,您可以使用预处理器指令来修饰C,C++或Fortran代码,并依靠编译器为设备生成并行代码。底层的计算或图形API和驱动程序仍然在使用中,但是您没有看到它们。
我想直接编程到GPU。例如添加2个数字。因为cuda和opencl将代码更改为程序集,应该有办法。你知道关于gpu的汇编代码并直接访问gpu吗? –
汇编代码 - 是:https://github.com/NervanaSystems/maxas 但直接访问意味着您将重新实现部分视频驱动程序。你真的想要吗? 如果您确实需要可以从任何C编译器使用的库 - 请查看OpenCL – Bulat
- 1. GPU编程,CUDA或OpenCL?
- 2. Cuda-OpenCL CPU比OpenCL或CUDA GPU版本快4倍
- 3. OpenCL和CUDA内核在同一GPU上
- 4. 使用CUDA的多GPU编程策略
- 5. 用于GPU的OpenCL FFT库?
- 6. GPU中的并行性 - CUDA/OpenCL
- 7. Matlab和GPU/CUDA编程
- 8. 使用多个CUDA GPU
- 9. CUDA远程GPU
- 10. 将CUDA或OpenCL编译为llvm IR
- 11. 的OpenMP与CUDA在另一个GPU上运行,而不是0
- 12. OpenCL不检测GPU
- 13. CUDA编程任务
- 14. 如何在一个GPU上使用CUDA运行多个内核?
- 15. TensorFlow似乎不使用GPU
- 16. Opencv错误:不支持GPU(库不支持CUDA编译)
- 17. tensorflow不使用GPU,但CUDA做
- 18. 在NUMA机器上使用CUDA进行多GPU编程
- 19. 在Ubuntu 16.04上有一个GPU的CUDA?
- 20. 用于OpenCL的CUDA式工作流程
- 21. OpenCL中的GPU使用内存
- 22. 使用opencl询问我的gpu信息
- 23. OpenCL使用GPU的最佳实践
- 24. GPU中工作项负载的局限性? CUDA/OpenCL
- 25. 用gpu cuda支持编译opencv
- 26. start cuda(使用库或API)
- 27. Cuda多个GPU:所有GPU都是同一个型号?
- 28. 如何使用GPU库(Jogamp JOCL)运行编译的Java类?
- 29. 使用CUDA或OpenCL的python中的多维FFT
- 30. 如何使用CUDA 8.0配置OpenCL应用程序nvprof
您是否想要开发可以通过PCI与GPU进行通信的硬件,以避免PC BIOS的帮助? – MikeCAT
或允许BIOS或UEFI只加载和启动您的代码,然后直接访问I/O端口或什么? – MikeCAT
@MikeCAT OpenCL和/或CUDA不是硬件 - 它只是一个简单,全面和标准化的GPGPU接口。很抱歉代替TS说话,但似乎他只是想问如何直接与GPGPU互连,而没有任何现有的接口。 – Slav