PPT link

https://gamma.app/docs/GPU-Programming-Model-q700j7dtxsq2104?mode=doc

Objective (What are expected to be learned)


前言


HIP(Heterogeneous-Compute Interface for Portability)是一套 GPU 程式模型與 API。可以用 C++ 或 python (這份教材以C++為主) 寫 host 端程式,並用 HIP kernel(__global__)在 GPU 上跑大量 threads。它的核心價值是:用相對一致的程式模型去操作不同 GPU 架構(AMD/NVIDIA),並讓你能掌握 GPU 的效能關鍵:SIMT 執行、記憶體階層、以及非同步資料搬移。

異構計算


Host v.s. Device

在 HIP 中,Host 代表 CPU 端,Device 代表 GPU 端,兩邊的環境 (context)不太一樣,具體如何不同呢? 在 Host 端,HIP 就跟一般的 C++ 程式一樣,只是有一些 HIP 專屬的 API,而在 Device 端,程式的執行遵循了 SIMT 模型,有大量的 threads 並行的執行程式,而兩邊的環境分別用 __host__ 以及 __device__ 兩種 Qualifiers來表示

<aside> ℹ️

INFORMATION

Qualifiers 是一種加在函式或變數前面的修飾詞,用來告訴編譯器

Host ↔ Device workflow