新的开始:OpenCL系列博客
缘起:最近做了一些OpenCL相关的开发,相当于是过来一遍从不懂到入门的流程了。为了记点笔记以防后续遗忘,也为了方便需要入门的朋友,我决定写一下自己用到的相关东西。如果路过的朋友觉得我的文章写得不错,请不要吝啬您的赞和收藏,有相关问题也可以留言讨论,您的鼓励是我写完的最大动力。
本博客的特点:
- 是一个完整的系列。会涵盖常用的OpenCL知识,学完之后能做基本的OpenCL开发。当然,若有没讲到的地方也希望大家能指出,我会尝试补全。
- 会包含函数使用时需要注意的细节。OpenCL比较注重细节,有时候函数报错了也不知道为啥报错,因此,我会尽可能添加细节,确保大家能少踩坑。
- 包含作者的实操经验。例如,实现基本的核函数后,读者可能会需要debug、会需要查看当前核函数的运行耗时、也可能有其它需求,相关的东西都会提一点。
已更新的内容:
- OpenCL的运行时模型(内存模型、线程组织等信息)————待更新
- Windows平台上英伟达显卡OpenCL运行环境搭建
- OpenCL的整体工作流程
- OpenCL中的内存对象(一)
本教程的内容:
- 主要是openCL入门知识,预想的是,先把我比较认可的已有内容的链接贴上,如果有认为比较重要的细节的话,会进行补充,否则就不再详述啦。具体内容,后面更新后会在这里贴链接的。
- 也会有性能调优方面的内容。但是,由于OpenCL的调优方式跟平台有关,我只会解读ARM平台上的调优一份文档,若想要在其它平台上运行OpenCL,请查阅跟平台相关的调优方案以获得更合适的方法。
推荐的入门教材(程):
- 知乎 华叔的 opencl入门教程:虽然章节不多,但是讲到的东西还是挺实用的,也能用于构建自己的最小可运行demo,我之后也会参考一些他的内容
- OpenCL: A Hands-on Introduction: 简单但全面的OpenCL教程,过完之后,其实基本的东西就都知道了
- OpenCL 2.0 异构计算 [第三版] (Heterogeneous Computing with OpenCL 2.0):比较全面的入门教材,值得过一遍。里面包含了许多细节,有些未曾注意到的内容,或许就是当前面临问题的成因。