簡體   English   中英

CUDA線程和塊說明

[英]CUDA threads and blocks explanation

我在這里一直在關注教程http://www.nvidia.com/docs/IO/116711/sc11-cuda-c-basics.pdf

嘗試自學基本的GPU編程。 我仍然不太了解塊和線程的拓撲。 在第42頁上,代碼定義尺寸數據如下:

#define N (2048*2048)
#define THREADS_PER_BLOCK 512

本教程是否在做假設? 我目前正在使用配備Nvidia 520m GPU的筆記本電腦。 使用cudaDeviceProp結構,我能夠確定我能夠在每個塊上運行1024個線程。 2048x2048確切地量化了什么? 多少塊? 我怎么知道那是正確的?

N (2048 * 2048)數量是數據集的整體大小。 該問題是向量相加問題,因此要相加的向量的總大小為N元素。

每個塊的線程數已在512定義。

塊的數量可以從內核啟動中確定:

add<<<N/THREADS_PER_BLOCK,THREADS_PER_BLOCK>>>(d_a, d_b, d_c);
       ^                          ^  
    number of blocks            number of threads in each block

因此,正在啟動的網格中的塊總數為2048 * 2048/512 = 8192

這些特定的參數(每塊512個線程,總共8192個塊)應該與任何當前可用的CUDA GPU兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM