首页 > 解决方案 > 如何找到函数的 CUDA __device__ 定义?

问题描述

我有一个特定的函数,我正在尝试查找源定义,特别是 nvcc 编译器正在使用什么。这个问题的措辞适用于函数中使用的任何函数(或我想的符号)__device__。鉴于:

__device__ void Foo(){
  
  int x = round( 0.0f );
}

查找 nvcc 编译器用于生成设备代码的“round(float)”定义的标准/规范/推荐方法是什么?

通常我使用 Visual Studio 的 F1“Go to Definition”,或者在项目文件中搜索“round”等。我还搜索 CUDA Toolkit 文档和 CUDA MATH API。在这种情况下,我找到了 VS cmath 定义。但是我如何确定 nvcc 编译器使用哪个定义呢?

标签: cuda

解决方案


查找 nvcc 编译器用于生成设备代码的“round(float)”定义的标准/规范/推荐方法是什么?

拆卸。大多数内置函数作为存根存在于头文件中,这些存根被扩展为内联汇编序列,作为设备编译器代码生成过程的一部分。没有可查看的输入代码。


推荐阅读