问题标签 [ptx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
170 浏览

cuda - 检测推力变换的ptx核

我有以下推力::转换电话。

我想在 PTX 文件中检测它对应的内核。但是有许多内核在它们的名称中包含 my_functor 。

例如-

启动了哪个内核,这些其他内核是什么?

0 投票
1 回答
411 浏览

c++ - 如何在 CUDA C++ 代码中使用“red”和“atom”PTX 指令?

CUDA PTX 指南描述了指令“ atom”和“red”,它们执行原子和非原子缩减。这对我来说是个新闻(至少在非原子减少方面)......我记得不久前学习如何使用 SHFL 进行减少。这些指令是否以某种方式反映或包装在 CUDA 运行时 API 中?或者在不实际编写 PTX 代码的情况下使用 C++ 代码访问的其他方式?

0 投票
1 回答
245 浏览

cuda - 为什么 nvrtc 编译器不将此 nvvm 代码片段发送到 ptx?

我有一些 NVVM 代码,我正在尝试使用 nvrtc 编译到 PTX(即使用 nvvmCompileProgram、nvvmGetCompiledResult)。

这是 nvvm 代码:

这是生成的ptx代码:

似乎 nvvm 编译器只是出于神秘的原因消除了代码。例如,根本没有发出对时钟函数的调用。

我是否使用编译器优化对提供的代码没有影响。

有人告诉我,Cuda 7.5 在 Windows 上有一些类似的问题(未发出程序集)。所以我降级到7.0。但是,问题仍然存在。

任何线索为什么会这样?

0 投票
1 回答
72 浏览

llvm - NVPTX 操作码到 LLVM 中的十六进制码

在 LLVM 中,当 CUDA 源文件编译成 PTX 文件时,会生成操作码。现在 LLVM 上的哪个部分将 PTX 文件中的这些操作码转换为二进制(十六进制码)(即最终的可执行文件)。搜索 llvm/lib/Target/NVPTX 并没有给出答案。

0 投票
1 回答
57 浏览

cuda - 用于一次读取特定数量的 PTX 命令

我知道这可以通过使用带有位操作功能的循环来实现,但是我想知道是否有更快、更直接的方法来做到这一点。我使用大约 64 位作为我的数据结构的标头,这可能是许多不同的东西。线程对标头进行解码,然后分配正确的结构,然后对该数据结构进行操作。但是现在我正在使用位操作函数来读取和写入标题,这不太理想,我阅读了 cuda 和 ptx 文档,但没有找到任何可以帮助我的东西。我想知道我是否确实错过了任何内容,或者实际上没有专门用于一次读取单个位的特定功能。

0 投票
1 回答
167 浏览

cuda - LLVM 编译器支持的 CUDA 编译的最低计算能力是多少?

一个 CUDA 源文件可以使用 LLVM 编译器和命令编译成 PTX 格式clang -Xclang -I$LIBCLC/include/generic -I$LIBCLC/include/ptx -Dcl_clang_storage_class_specifiers -O3 cudaFile.cu -S -o ptxOutputFile.ptx --cuda-gpu-arch=sm_XX

其中sm_XX可以替换为sm_20、sm_30。对于计算能力 1.0,当 sm_XX 被替换为 sm_10 时,它给出了错误fatal error: cannot open file '/tmp/shared-25f2f5.s': No such file or directory 1 error generated.

所以看起来 LLVM 的最低计算能力为 2.0。这个假设正确吗?

0 投票
1 回答
146 浏览

c++ - 如何解释 CUDA 的内联 PTX 内部编译器错误

我想测量 gpu 全局内存的缓存行为,下面是我设计的微基准。我想要做的是从全局内存地址 r_add0 加载并将其存储到共享内存 s_tvalue[0] 中。出于某种原因,我需要用内联 PTX 代码替换全局内存中的加载指令。

但是,当我用 nvcc 编译它时,它抱怨编译错误

有谁知道我的代码的原因。

完整代码见下图:

0 投票
1 回答
356 浏览

cuda - 将 CUDA PTX 编译为旧目标的二进制文件

从这个问题 可知,PTX 可以跨各种架构移植。我相信这允许迁移例如:sm_20 到 sm_30。我有一个从 sm_20 到 sm_10 的特殊用例。因此,是否可以使用为 sm_20 目标编译的 PTX 为 sm_10 目标生成二进制文件,例如 cubin。

0 投票
1 回答
169 浏览

cuda - sm_10 的最新 PTX ISA 版本

从 NVIDIA网站上,我没有找到有关删除对 sm_10 支持的 PTX ISA 版本的线索。从我的实验中,我有一个直觉,它是 PTX ISA 4.1,其中删除了对 sm_10 的支持。或者从其他意义上说,4.0 是支持 sm_10 的最新 PTX ISA 版本。这个对吗?

0 投票
1 回答
994 浏览

cuda - 无法链接从 CUBIN 中间表示生成的 CUDA 对象文件

根据 NVIDIA文档,当 PTX、CUBIN 或 FATBIN 生成时,主机代码会从文件中丢弃。现在我有了我的主机代码 (main.cu) 和设备代码 (shared.cu)。当编译每个文件以*.o使用 nvcc 选项nvcc -c main.cu shared.cu,甚至使用选项nvcc -dc main.cu shared.cu并将它们链接起来时nvcc -link main.o shared.o,我可以生成可执行文件。但是当shared.cu编译到shared.cubin并进一步编译到 时*.o,链接会失败并出现错误tmpxft_00001253_00000000-4_main.cudafe1.cpp:(.text+0x150): undefined reference to <KERNEL FUNCTION>

我想知道这里shared.cu只包含设备代码,即使删除了主机代码,为什么链接会失败。

源代码文件是main.cu

共享.cu

共享.h