【问题标题】:Is there a way to specify __device__ for an entire file? (Nvidia Cuda Compiler)有没有办法为整个文件指定 __device__ ? (英伟达 Cuda 编译器)
【发布时间】:2022-11-10 23:57:16
【问题描述】:

我正在导入一个库,编译时出现此错误:

go.cu(61): error: calling a __host__ function("TinyJS::Interpreter::Interpreter()") from a __global__ function("capnduk_kernel") is not allowed

...有没有办法将整个文件 (TinyJS) 移植到设备上运行?

我检查了编译器文档,看起来没有办法做到这一点。我猜唯一的方法是手动重写文件,这是一罐蠕虫。

【问题讨论】:

  • Nvidia 的 nvc/nvc++ 编译器(来自 NVHPC 工具包,基于旧的 PGI 编译器)可能能够完成这项工作,因为它可以自动确定 __host____device__。您确定该文件中的所有内容都是有效的设备代码吗?
  • 查看链接文件后,我认为无论有没有__device__ 说明符,这都不太可能。有很多东西,比如设备代码中不支持的异常。我猜想将 JS 解释器移植到 GPU一罐蠕虫。你到底想达到什么目的?

标签: cuda nvcc


【解决方案1】:

nvcc 没有办法做到这一点。这将需要手动操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    相关资源
    最近更新 更多