中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用GPU編寫Hello World

發布時間:2022-05-25 11:26:54 來源:億速云 閱讀:248 作者:iii 欄目:大數據

這篇文章主要介紹“怎么用GPU編寫Hello World”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么用GPU編寫Hello World”文章能幫助大家解決問題。

函數聲明

??在GPU編程中,有三種函數的聲明:


Executed onOnly callable from
__global__ void KernelFunc()devicehost
__device__ float DeviceFunc()devicedevice
__host__ float HostFunt()hosthost

這里的host端就是指CPU,device端就是指GPU;使用__global__聲明的核函數是在CPU端調用,在GPU里執行;__device__聲明的函數調用和執行都在GPU中;__host__聲明的函數調用和執行都在CPU端。

并行優化定理

??在講GPU并行計算之前,我們先講一下使用GPU后能提高性能的理論值,即Amdahld定理,也就是相對串行程序而言,并行程序的加速率。

??假設程序中可并行代碼的比例為p,并行處理器數目是n,程序并行化后的加速率為:
怎么用GPU編寫Hello World

GPU Hello World

??Hello World程序是我們學習任何編程語言時,第一個要完成的,雖然cuda c并不是一門新的語言,但我們還是從Hello World開始Cuda編程。

#include <stdio.h>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

__global__ void hello_world(void)
{
    printf("GPU: Hello world! Thread id : %d\n", threadIdx.x);
}

int main(){
    printf("CPU: Hello world!\n");
    hello_world <<<1, 10>>>();
    // cudaDeviceReset must be called before exiting in order for profiling and
    // tracing tools such as Nsight and Visual Profiler to show complete traces.
    cudaDeviceReset();
    return 0;
}

??程序中的具體語法我們后面會講到,這里只要記住<<<1, 10>>>是調用了10個線程即可,執行上面的程序,會打印出10個GPU的Hello World,這個就是SIMD,即單指令多線程,多個線程執行相同的指令,就像程序中的這個10個線程同時執行打印Hello Wolrd的這個指令一樣。

關于“怎么用GPU編寫Hello World”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

gpu
AI

汨罗市| 乐亭县| 罗定市| 科技| 剑阁县| 武胜县| 姜堰市| 黎城县| 独山县| 五寨县| 北流市| 新河县| 庐江县| 富民县| 山丹县| 鲁山县| 天气| 乌兰浩特市| 郧西县| 遵义县| 宜川县| 霍城县| 区。| 怀安县| 大埔区| 饶阳县| 东乡族自治县| 广德县| 手游| 绥德县| 儋州市| 铅山县| 沙湾县| 太康县| 清河县| 大渡口区| 厦门市| 顺义区| 米易县| 永吉县| 江津市|