內核函數
外觀
在計算中,內核函數是為高吞吐量加速器(例如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)