【cuda】- 01
1. 基本概念
- host :指代 cpu 及其記憶體
- device :指代 gpu 及其記憶體
- cuda 程式 包括 host 程式和 device 程式,分別在 cpu 和 gpu 上執行
- host 和 device 之間可以通訊,進行資料拷貝
2. cuda 程式執行流程
- 分配 host 記憶體,資料初始化
- 分配 device 記憶體,並從 host 將資料拷貝到 device 上
- 呼叫 cuda 核函式在 device 上完成運算
- 將 device 的運算結果拷貝到 host 上
- 釋放 device 和 host 上分配的記憶體
核函式 :
- 需要用 _ _ global_ _ 符號宣告
- 呼叫時需要用 <<<grid, block>>> 來指定 kernel 要執行的執行緒數量
- cuda 中每一個執行緒都要執行核函式,並且每個執行緒都會分配一個唯一的執行緒號 thread ID,這個 ID 值可以通過核函式的內建變數 threadidx 獲得
cuda 核函式
kernel_function<<<num_blocks, num_threads>>>(param1, param2, ...)
num_blocks : 執行緒塊的數量
num_threads : 執行核心函式的執行緒數量
舉個例子:
some_kernel_func<<<2, 64>>>(a, b, c)
這將會呼叫 some_kernel_func
這個 gp× 64 次
然後具體核函式:
__global__ void some_kernel_func(int * const a, const int * const b,const int * constc)
{
const unsigned int thread_idx = (blockIdx.x * blockDim.x) + threadIdx.x;
a[thread_idx] = b[thread_idx] * c[thread_idx];
}
相關文章
- CUDA
- cmake cuda
- cuda 流
- TensorFlow 報錯 CUDA driver version is insufficient for CUDA runtime version
- CUDA 技能樹
- cuda和cudatoolkit
- 【CUDA】CUDA9.0+VS2017+win10詳細配置Win10
- CUDA進階第三篇:CUDA計時方式
- CUDA學習筆記-1: CUDA程式設計概覽筆記程式設計
- CUDA 版本檢視
- cuda 核函式函式
- cuda安裝教程
- CUDA的問題
- CUDA精講(1)
- CUDA學習指南
- 簡述CUDA執行緒及求CUDA中執行緒索引執行緒索引
- miniconda Pytorch CUDA Cudnn onnxruntimePyTorchDNN
- cuda的c++程式C++
- cuda 加速矩陣乘法矩陣
- Ubuntu下安裝CUDAUbuntu
- 漫談CUDA優化優化
- CUDA總結2——cudaMemcpymemcpy
- kaldi+cuda安裝
- cmake 生成 cuda 專案
- Kaldi中啟用cuda
- cuda程式設計與gpu平行計算(四):cuda程式設計模型程式設計GPU模型
- CUDA和CUDNN版本切換DNN
- 有Cuda能力的GPU核心GPU
- cuda函式庫介紹函式
- 如何完全刪除linux cudaLinux
- linux安裝cuda和cudnnLinuxDNN
- Ubuntu 切換不同 CUDA 版本Ubuntu
- cuda runtime error (801) : operation not supportedError
- CUDA常用概念及注意點
- cuda矩陣練習(一)矩陣
- cuda16.4安裝cudnnDNN
- CUDA記憶體介紹記憶體
- 2021-01-01