0
我的算法(並行多面高斯消元)需要在CUDA內核中動態分配內存(樹構建)。有誰知道gpuocelot是否支持這樣的事情?gpuocelot是否支持CUDA設備中的動態內存分配?
據此:stackoverflow-link和CUDA編程指南我可以做這樣的事情。但使用gpuocelot時,我在運行時遇到錯誤。
錯誤:
- 當我打電話
malloc()
裏面的內核我得到這個錯誤:(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.
- 當我嘗試獲取或設置的malloc堆大小(內部主機代碼):
solver: ocelot/cuda/implementation/CudaRuntimeInterface.cpp:811: virtual cudaError_t cuda::CudaRuntimeInterface::cudaDeviceGetLimit(size_t*, cudaLimit): Assertion `0 && "unimplemented"' failed.
也許我必須指出(某種程度上)編譯器,我想使用設備malloc()
?
有什麼建議嗎?
我有理由相信該仿真器'malloc','free'和'printf'支持已經出爐,但我不這麼肯定有關LLVM後端。你應該在Ocelot郵件列表中問這個問題。這根本不是真正的CUDA問題,我很想去掉CUDA標籤。 – talonmies