一般的資料複製到的顯示卡記憶體的部份,稱為global memory
int* gpudata, *result;
cudamalloc((void**) &gpudata, sizeof(int) * data_size);
cudamalloc((void**) &result, sizeof(int));
cudamemcpy(gpudata, data, sizeof(int) * data_size,
cudamemcpyhosttodevice);
int sum;
cudamemcpy(&sum, result, sizeof(int), cudamemcpydevicetohost);
cudafree(gpudata);
cudafree(result);
關鍵函式說明:
1.5.1
cudamalloc
名稱
cudamalloc –
在gpu
上分配儲存器
概要
cudaerror_t cudamalloc( void** devptr
,size_t count )
說明
向裝置分配
count
位元組的線性儲存器,並以
*devptr
的形式返回指向所分配儲存器的指標。可針對任何型別的變數合理調整所分配的儲存器。儲存器不會被清除。如果出現錯誤,
cudamalloc()
將返回cudaerrormemoryallocation。
返回值
相關返回值:
cudasuccess cudaerrormemoryallocation
注意,如果之前是非同步啟動,該函式可能返回錯誤碼。
名稱
cudamemcpy –
在gpu
和主機之間複製資料
概要
cudaerror_t cudamemcpy( void* dst
,const void* src
,size_t count
,enum cudamemcpykind kind )
cudaerror_t cudamemcpyasync( void* dst
,const void* src
,size_t count
,enum cudamemcpykind
kind
,cudastream_t stream )
說明
從
src指向的儲存器區域中將
count
個位元組複製到
dst指向的儲存器區域,其中
kind
是cudamemcpyhosttohost
、cudamemcpyhosttodevice
、cudamemcpydevicetohost
或cudamemcpydevicetodevice
之一,用於指定複製的方向。儲存器區域不可重疊。呼叫
cudamemcpy()
時,如果
dst和
src指標與複製的方向不匹配,則將導致不確定的行為。
cudamemcpyasync()
是非同步的,可選擇傳入非零流引數,從而將其關聯到乙個流。
它僅對分頁鎖定的主儲存器有效,如果傳入指向可分頁儲存器的指標,那麼將返回乙個錯誤。
返回值
相關返回值:
cudasuccess
cudaerrorinvalidvalue
cudaerrorinvaliddevicepointer cudaerrorinvalidmemcpydirection
注意,如果之前是非同步啟動,該函式可能返回錯誤碼。
名稱
cudafree –
釋放gpu
上的儲存器
概要
cudaerror_t cudafree (void* devptr)
說明
釋放
devptr
(必須在之前呼叫
cudamalloc()
或cudamallocpitch()
時返回)指向的儲存器空間。如果未返回或者之前已經呼叫過
cudafree(devptr)
,則返回乙個錯誤。如果
devptr為0
,則不執行任何操作。如果出現錯誤,
cudafree()
將返回cudaerrorinvalid-devicepointer。
返回值
相關返回值:
cudasuccess
cudaerrorinvaliddevicepointer cudaerrorinitializationerror
注意,如果之前是非同步啟動,該函式可能返回錯誤碼。
scp 在不同主機之間資料傳輸
不同的linux之間copy檔案常用有3種方法,第一種就是ftp,也就是其中一台linux安裝ftp server,這樣可以另外一台使用ftp的client程式來進行檔案的copy。第二種方法就是採用samba服務,類似windows檔案copy 的方式來操作,比較簡潔方便,第三種就是利用scp命令...
兩個fragment之間資料傳輸
最近要折騰兩個fragment之間傳資料的問題,在網上看了很多文章,基本都是使用兩種方法 1,兩個fragment之間使用getfragmentmanager begintransaction replace r.id realtabcontent 容器 myjdeditfragment 要跳轉的f...
scp 在不同主機之間資料傳輸
不同的linux之間copy檔案常用有3種方法,第一種就是ftp,也就是其中一台linux安裝ftp server,這樣可以另外一台使用ftp的client程式來進行檔案的copy。第二種方法就是採用samba服務,類似windows檔案copy 的方式來操作,比較簡潔方便,第三種就是利用scp命令...