章序

我之前是做deep learning framework的,同样的代码,在Mali GPU上比在Adreno GPU 上慢几十倍。鉴于两者的硬件差距应该没有这么大,我觉得可能是驱动的问题。作为和kernel直接打交道的东西,驱动我实在是搞不明白。但是现在弄不明白,不见得将来就能弄明白啊,lol。为了克服自己的皮,以及想当作一个笔记,我决定把它加入《年子》来记录我对GPU kernel的理解和认识。由于我在看driver代码的时候才发现自己不是很懂Linux那一套,此章可能会repeat Linux的一部分内容,希望大神们见谅。

GPU driver需要处理很多东西,首先需要把GPU注册到系统里,其次还要能接受你提交的任务,内部应该还有一个scheduler去schedule所有的tasks。由于每一项都涉及很多步骤,我会用流程图给表示出来,并且还会加上必要的讲解,以防止我忘了是咋回事儿。

就是这样。。。