2013-01-20 67 views
0

我的算法(並行多面高斯消元)需要在CUDA內核中動態分配內存(樹構建)。有誰知道gpuocelot是否支持這樣的事情?gpuocelot是否支持CUDA設備中的動態內存分配?

據此:stackoverflow-link和CUDA編程指南我可以做這樣的事情。但使用gpuocelot時,我在運行時遇到錯誤。

錯誤:

  1. 當我打電話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.
  2. 當我嘗試獲取或設置的malloc堆大小(內部主機代碼):
    solver: ocelot/cuda/implementation/CudaRuntimeInterface.cpp:811: virtual cudaError_t cuda::CudaRuntimeInterface::cudaDeviceGetLimit(size_t*, cudaLimit): Assertion `0 && "unimplemented"' failed.

也許我必須指出(某種程度上)編譯器,我想使用設備malloc()

有什麼建議嗎?

+0

我有理由相信該仿真器'malloc','free'和'printf'支持已經出爐,但我不這麼肯定有關LLVM後端。你應該在Ocelot郵件列表中問這個問題。這根本不是真正的CUDA問題,我很想去掉CUDA標籤。 – talonmies

回答