[問題] CUDA和CPU記憶體問題
假如mycuda.cu
void mycuda(int *data)
{
宣告GPU array1
用cudaMemcpy把data複製到array1
array1做些運算
cudaFree掉array1
}
這樣在main.cpp大概是
int main()
{
宣告data1
mycuda(data1);
free掉data1
return 0;
}
這樣沒什麼問題, 可是現在我想
void mycuda(int *data)
{
宣告array1 array2 //可能只要宣告一次?
用cudaMemcpy把data複製到array1
array1和array2做些運算
複製array1到array2
等下次data更新之後再算一次
}
int main()
{
宣告data1, data2, data3...
mycuda(data1);
mycuda(data2);
mycuda(data3);....
free掉data1, data2, data3...
}
希望有人看得懂我想表達什麼, 就是call mycuda(data2)的時候會用到之前data1的東西
但是我不希望又要重新傳一個data1進去, 可是現在這種寫法好像不行, 還會memory leak
所以不知道有什麼方法可以把gpu記憶體留著下次利用, 煩請各位解答, 感激不盡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 24.161.183.254
→
06/17 03:44, , 1F
06/17 03:44, 1F
→
06/17 03:45, , 2F
06/17 03:45, 2F
→
06/17 11:15, , 3F
06/17 11:15, 3F
→
06/17 11:16, , 4F
06/17 11:16, 4F
→
06/17 11:50, , 5F
06/17 11:50, 5F
→
06/17 11:51, , 6F
06/17 11:51, 6F
→
06/17 17:36, , 7F
06/17 17:36, 7F
→
06/17 17:36, , 8F
06/17 17:36, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章