多個並行執行緒塊完成兩個向量的求和:
**如下(使用了10個並行執行緒塊):
#include #include "book.h"
using namespace std;
#define n 10
__global__ void add(int *a, int *b, int *c)
int main(void) {
int a[n], b[n], c[n];
int *dev_a, *dev_b, *dev_c;
//在gpu上分配記憶體
handle_error(cudamalloc((void**)&dev_a, n * sizeof(int)));
handle_error(cudamalloc((void**)&dev_b, n * sizeof(int)));
handle_error(cudamalloc((void**)&dev_c, n * sizeof(int)));
//在cpu上為a和b賦值
for (int i = 0; i> >(dev_a, dev_b, dev_c);
//將陣列c從gpu複製到cpu
handle_error(cudamemcpy(c, dev_c, n * sizeof(int),
cudamemcpydevicetohost));
for (int i = 0; i執行結果:
CUDA( ) 向量求和運算
問題描述 將兩組資料對應的元素兩兩相加,並將結果儲存在第三個陣列中。即向量求和運算 目錄 1.基於cpu的向量求和 分析 問題 索引取值範為0 到 n 1 下面兩種函式add 有什麼區別嗎?完整的 實現及執行結果 2.基於gpu的向量求和 分析 問題 裡面引數式什麼含義?問題 既然gpu將執行ker...
cuda並行程式設計基礎(二)
二 一些基礎 上接 cuda並行程式設計基礎 一 二 cuda基礎 gridblock.cu 4.總計算量與block grid的關係 假設一維陣列總計算量為total c,怎麼確定block與grid呢?一維陣列 int cal array xx int thd num 16 dim3 block...
cuda程式設計 CUDA程式設計入門(四)並行歸約演算法
這一篇我們一起學習一下如何使用cuda實現並行歸約演算法。首先我們要知道什麼是並行歸約。並行歸約 reduction 是一種很基礎的並行演算法,簡單來說,我們有n個輸入資料,使用乙個符合結合律的二元操作符作用其上,最終生成1個結果。這個二元操作符可以是求和 取最大 取最小 平方 邏輯與或等等。我們以...