malloc комплекс <float>в C ++ и CUDA - PullRequest
0 голосов
/ 27 января 2011

В C ++, если мне нужен массив complex, я могу сделать что-то вроде этого:

complex<float> *temp = new complex<float>[size];

Могу ли я изменить это в оператор malloc?

А что если я захочу использовать cudaMalloc для предоставления мне массива на GPU сложных операций с плавающей запятой?

спасибо

Ответы [ 3 ]

3 голосов
/ 27 января 2011

Могу ли я изменить это в оператор malloc?

Нет, но вы можете изменить его на оператор malloc с помощью Placement-New.Хотя я не могу понять, почему вы хотите это сделать.

А что, если я захочу использовать cudaMalloc для предоставления мне массива на GPU сложных объектов с плавающей запятой?

Опять же, вам придется использовать новое размещение.

1 голос
/ 27 января 2011

Для Cuda существует тип cuComplex для комплексных значений floa и cuDoubleComplex для двойных комплексных значений. Вы можете использовать оба в сочетании с cudaMalloc или cublasAlloc.

0 голосов
/ 27 января 2011

Если complex не имеет конструктора, нет.Вы должны использовать new при размещении массивов в C ++.

...