日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cudagpus是什么_如何在cuda中复制不同gpus之间的内存

發布時間:2024/1/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cudagpus是什么_如何在cuda中复制不同gpus之间的内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將數據從一個GPU傳輸到另一個GPU通常需要通過主機內存進行“分段”.例外情況是GPU和系統拓撲支持對等(P2P)訪問并且已明確啟用P2P.在這種情況下,數據傳輸可以直接通過PCIE總線從一個GPU流向另一個GPU.

在任何一種情況下(有或沒有P2P可用/啟用),典型的cuda runtime API call將是cudaMemcpyPeer / cudaMemcpyPeerAsync,如cuda p2pBandwidthLatencyTest sample code中所示.

在Windows上,P2P的一個要求是在TCC模式下驅動程序支持兩個設備.大多數情況下,TCC模式不是GeForce GPU的可用選項(最近,使用CUDA 7.5RC工具包中提供的驅動程序和運行時對GeForce Titan系列GPU進行了例外處理.)

因此,在Windows上,這些GPU將無法利用直接P2P傳輸.然而,幾乎相同的序列可用于傳輸數據. CUDA運行時將檢測傳輸的性質,并在“引擎蓋下”執行分配以創建臨時緩沖區.然后,傳輸將分兩部分完成:從始發設備到登臺緩沖區的傳輸,以及從登臺緩沖區到目標設備的傳輸.

以下是一個完整的示例,展示了如何將數據從一個GPU傳輸到另一個GPU,同時利用P2P訪問(如果可用):

$cat t850.cu

#include

#include

#define SRC_DEV 0

#define DST_DEV 1

#define DSIZE (8*1048576)

#define cudaCheckErrors(msg) \

do { \

cudaError_t __err = cudaGetLastError(); \

if (__err != cudaSuccess) { \

fprintf(stderr, "Fatal error: %s (%s at %s:%d)

總結

以上是生活随笔為你收集整理的cudagpus是什么_如何在cuda中复制不同gpus之间的内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。