内核函数
外观
在计算中,内核函数是为高吞吐量加速器(例如GPU,DSP或FPGA)编译的例程,与主程序分开。它们有时被称为计算着色器,与GPU 共享顶点着色器和像素着色器的执行单元,但不限于在一类设备或图形API上执行。[1][2]
使用
[编辑]在实现传统语言中的算法(除了没有隐含的顺序操作)或传递给内部迭代器的代码时,计算内核大致对应于内部循环。
可以使用OpenCL C (由OpenCL API 管理)的单独编程语言来指定为着色器(由OpenGL之类的图形API管理),或者直接嵌入在高级语言的应用程序代码,就像C++ AMP的情况一样。
向量处理
[编辑]这种编程范例可以很好地映射到向量处理器:假设批处理中的每个内核调用都是独立的,允许数据并行执行。然而,在某些情况下,线性一致性有时可能用于数据之间的同步(用于相互依存的工作)。每个调用都有给定的索引(1维或更多维),从中可以执行缓冲区数据的任意寻址(包括分散收集操作),只要遵守不重叠的假设。
Vulkan API
[编辑]Vulkan (API),以描述两个着色器,和内核函数,在一个独立于语言和与跨平台的方式。其目的是促进语言演进,并提供更自然的利用GPU计算能力的能力,符合硬件开发(如统一内存架构和异构系统架构)。这允许CPU和GPU之间更密切的合作。
另见
[编辑]参考资料
[编辑]- ^ 計算程序的Metal design介紹, [2018-06-20], (原始内容存档于2020-09-25)
- ^ CUDA教程 - 內核, [2018-06-20], (原始内容存档于2020-02-16)