CUDA入門

CUDA API包括三個,從低到高等級分別爲 Thrust API  Runtime API   Driver API編程

 

用於CUDA的GPU是安裝於主機系統中的獨立設備緩存

GPGPU運行在一個和主處理器相隔離的存儲空間中異步

CUDA Kernel是可在主機代碼中調用而在CUDA設備上運行的子程序(Kernel沒有返回值)函數

Kernel的調用時異步的,即主機僅僅把要執行的Kernel順序提交給GPGPU,並不等待執行完成,而後直接處理後面的其餘任務性能

  cudaThreadSynchronize() 使主機進入阻塞狀態測試

  cudaMemory() 實現阻塞式數據傳輸spa

GPU上的基本運行單位是線程線程

GPU上最大的可共享的內存區域成爲全局內存內存

  常量內存、高速緩存、共享內存、局域內存、紋理內存、寄存器ci

 

GPGPU編程的三條法則

  1 將數據放入病始終存儲於GPGPU

    pcie總線速度大概是8gb/s,而GPU全局內存的速度大概是160-200gb/s

  2 交給GPGPU足夠多的任務

    傳輸數據還要消耗時間,所以,最好讓GPU工做時間能補償傳輸所浪費的資源

  3 注重GPGPU上的數據重用,以免帶寬限制

    儘可能重用數據以獲取高性能

 

迴歸測試:常常用一段代碼做爲迴歸測試,測試kernel函數的正確性

相關文章
相關標籤/搜索