在計算中,內核函數是為高吞吐量加速器(例如GPUDSPFPGA)編譯的例程,與主程序分開。它們有時被稱為计算着色器,與GPU 共享頂點著色器和像素著色器的執行單元,但不限於在一類設備或圖形API上執行。[1][2]

使用 编辑

在實現傳統語言中的算法(除了沒有隱含的順序操作)或傳遞給內部迭代器的代碼時,計算內核大致對應於內部循環

可以使用OpenCL C (由OpenCL API 管理)的單獨編程語言來指定為着色器(由OpenGL之類的圖形API管理),或者直接嵌入在高级语言的應用程序代碼,就像C++ AMP的情況一樣。

向量處理 编辑

這種編程範例可以很好地映射到向量處理器:假設批處理中的每個內核調用都是獨立的,允許數據並行執行。然而,在某些情況下,线性一致性有時可能用於數據之間的同步(用於相互依存的工作)。每個調用都有給定的索引(1維或更多維),從中可以執行緩衝區數據的任意尋址(包括分散收集操作),只要遵守不重疊的假設。

Vulkan API 编辑

Vulkan (API),以描述兩個着色器,和内核函数,在一個獨立於語言和與跨平台的方式。其目的是促進語言演進,並提供更自然的利用GPU計算能力的能力,符合硬件開發(如統一內存架構和異構系統架構)。這允許CPU和GPU之間更密切的合作。

另見 编辑

參考資料 编辑

  1. ^ 計算程序的Metal design介紹, [2018-06-20], (原始内容存档于2020-09-25) 
  2. ^ CUDA教程 - 內核, [2018-06-20], (原始内容存档于2020-02-16)