gpuocelot是否支持CUDA设备中的动态内存分配?
我的算法(并行多前沿高斯消除)需要在CUDA内核中动态分配内存(树构建)。有人知道gpuocelot是否支持这些东西吗 根据这个:和CUDA编程指南我可以做这样的事情。但是使用gpuocelot,我会在运行时出错 错误:gpuocelot是否支持CUDA设备中的动态内存分配?,cuda,nvidia,dynamic-memory-allocation,gpu,Cuda,Nvidia,Dynamic Memory Allocation,Gpu,我的算法(并行多前沿高斯消除)需要在CUDA内核中动态分配内存(树构建)。有人知道gpuocelot是否支持这些东西吗 根据这个:和CUDA编程指南我可以做这样的事情。但是使用gpuocelot,我会在运行时出错 错误: 当我在内核内部调用malloc()时,我得到以下错误:(2.000239)ExternalFunctionSet.cpp:371:断言消息:需要LLVM才能从PTX调用外部主机函数。 (2.000239) ExternalFunctionSet.cpp:371: Assert
malloc()
时,我得到以下错误:(2.000239)ExternalFunctionSet.cpp:371:断言消息:需要LLVM才能从PTX调用外部主机函数。 (2.000239) ExternalFunctionSet.cpp:371: Assertion message: LLVM required to call external host functions from PTX. solver: ocelot/ir/implementation/ExternalFunctionSet.cpp:371: void ir::ExternalFunctionSet::ExternalFunction::call(void*, const ir::PTXKernel::Prototype&): Assertion false' failed. 解算器:ocelot/ir/implementation/ExternalFunctionSet.cpp:371:void ir::ExternalFunctionSet::ExternalFunction::call(void*,const ir::PTXKernel::Prototype&):断言false“失败”
解算器:ocelot/cuda/implementation/CudaRuntimeInterface.cpp:811:virtual-cudaError\u t cuda::CudaRuntimeInterface::cudaDeviceGetLimit(size\u t*,cudaLimit):断言“0&&unimplemented”失败
malloc()
有什么建议吗?您可以在gpu ocelot邮件列表中找到答案:
我确信emulator已经加入了
malloc
、free
和printf
支持,但我对LLVM后端不是很确定。你真的应该在Ocelot邮件列表上问这个问题。这根本不是CUDA的问题,我很想去掉CUDA标签。
solver: ocelot/cuda/implementation/CudaRuntimeInterface.cpp:811: virtual cudaError_t cuda::CudaRuntimeInterface::cudaDeviceGetLimit(size_t*, cudaLimit): Assertion `0 && "unimplemented"' failed.