在C++中,如果我想的複雜陣列我可能會做這樣的事情:的malloc在C複雜<float> ++和CUDA
complex<float> *temp = new complex<float>[size];
我能變成一個malloc的聲明呢?
如果我想用cudaMalloc給我一個複雜浮點的GPU上的數組呢?
感謝
在C++中,如果我想的複雜陣列我可能會做這樣的事情:的malloc在C複雜<float> ++和CUDA
complex<float> *temp = new complex<float>[size];
我能變成一個malloc的聲明呢?
如果我想用cudaMalloc給我一個複雜浮點的GPU上的數組呢?
感謝
我能變成一個malloc的聲明呢?
不,您可以使用Placement-New將其更改爲malloc語句。看不出爲什麼你想這樣做。
如果我想使用cudaMalloc給我一個複雜浮點的GPU上的數組呢?
再次,您將不得不使用新的位置。
除非complex
沒有構造函數,否。在C++中分配數組時應該使用new
。
對於Cuda來說,複雜的floa值有cuComplex類型,對於雙重複值有cuDoubleComplex類型。 您可以同時使用cudaMalloc或cublasAlloc。
不正確。複雜需要是POD類型,不僅沒有用戶定義的構造函數。 – 2011-01-26 23:00:56
來自wiki:C++中的POD類型被定義爲標量類型或POD類。 POD類沒有用戶定義的拷貝賦值操作符,也沒有用戶定義的析構函數,也沒有非自身POD的非靜態數據成員。此外,一個POD類必須是一個聚合,這意味着它沒有用戶聲明的構造函數,沒有私有或非受保護的非靜態數據,沒有基礎和沒有虛函數。 – T33C 2011-01-26 23:06:42