【问题标题】:What size are integers when programming cuda kernels编程 cuda 内核时整数的大小是多少
【发布时间】:2010-10-15 09:37:43
【问题描述】:

我似乎无法在 Cuda 编程指南中找到这个简单问题的答案:使用 nvcc 编译内核时,short、int、long 和 long long 声明的整数大小是多少?它是否取决于我的主机架构,所以我应该使用 int16_t、int32_t 和 int64_t,还是总是固定大小?

【问题讨论】:

    标签: cuda


    【解决方案1】:

    这取决于主机编译器。具体来说,nvcc 对这些类型的定义将与宿主编译器的表示一致。

    实际上,charshortint 数据类型在 CUDA 支持的所有平台(分别为 8、16 和 32 位)上具有可预测的大小。但是long 的大小因平台而异。

    【讨论】:

    • 你确定这是对的吗?设备代码需要转换为 ptx 命令。如果这个过程是特定于主机架构的,那就太奇怪了。我查看了 CUDA 文档,但找不到任何东西。
    • 是的,设备数据类型必须与主机类型匹配,否则无法预测要对主机执行多少 memcpy。
    • 谢谢。这正是我所需要的。这确实是有道理的,因为如果我负责匹配主机代码和内核代码之间的类型,那将是一场噩梦。
    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 2020-01-29
    • 2023-04-02
    相关资源
    最近更新 更多