0

我的算法(并行多前高斯消除)需要在 CUDA 内核中动态分配内存(树构建)。有谁知道 gpuocelot 是否支持这些东西?

根据这个:stackoverflow-link和CUDA编程指南我可以做这样的事情。但是使用 gpuocelot 我会在运行时出错。

错误:

  1. 当我malloc()在内核内部调用时,出现此错误:
    (2.000239) ExternalFunctionSet.cpp:371:断言消息:从 PTX 调用外部主机函数需要 LLVM。
    求解器:ocelot/ir/implementation/ExternalFunctionSet.cpp:371: void ir::ExternalFunctionSet::ExternalFunction::call(void*, const ir::PTXKernel::Prototype&): Assertion false' 失败。
  2. 当我尝试获取或设置 malloc 堆大小(在主机代码内)时:
    求解器:ocelot/cuda/implementation/CudaRuntimeInterface.cpp:811: virtual cudaError_t cuda::CudaRuntimeInterface::cudaDeviceGetLimit(size_t*, cudaLimit): Assertion '0 && "unimplemented"' 失败。

也许我必须(以某种方式)指向我想使用 device 的编译器malloc()

有什么建议吗?

4

1 回答 1

1

您可以在 gpu ocelot 邮件列表中找到答案:

gpuocelot 邮件列表链接

于 2013-01-24T18:51:21.097 回答