malloc 一个复杂的在 C++和CUDA
在 C++ 中,如果我想要一个复杂的数组,我可能会这样做:
complex<float> *temp = new complex<float>[size];
我可以将其更改为 malloc 语句吗?
如果我想使用 cudaMalloc 在 GPU 上提供一个复杂浮点数组怎么办?
谢谢
In C++, if I want an array of complex I might do something like this:
complex<float> *temp = new complex<float>[size];
Can I change this into a malloc statement?
What about if I want to use cudaMalloc to give me an array on the GPU of complex floats?
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不是,但是你可以用Placement-New把它改成malloc语句。但不明白你为什么要这样做。
同样,您必须使用新的展示位置。
No, but you can change it into a malloc statement with Placement-New. Can't see why you'd want to do that though.
Again, you'll have to use placement new.
对于 Cuda,有用于复数 floa 值的 cuComplex 类型和用于双复数值的 cuDoubleComplex 类型。
您可以将两者与 cudaMalloc 或 cublasAlloc 结合使用。
For Cuda there is the type cuComplex for complex floa values and cuDoubleComplex for double complex values.
You can use both in combination with cudaMalloc or cublasAlloc.
除非
complex
没有构造函数,否则不会。在 C++ 中分配数组时应该使用 new 。Unless
complex
has no constructor, no. You should usenew
when allocating arrays in C++.