Cuda char* 变量赋值

2024-01-04

这是本文所选答案的后续问题:cuda程序的输出不是预期的 https://stackoverflow.com/questions/6561005/output-of-cuda-program-is-not-what-was-expected/6561375#6561375.

虽然以下功能有效:

__global__ void setVal(char **word)
{

    char *myWord = word[(blockIdx.y * gridDim.x) + blockIdx.x];
    myWord[0] = 'H';
    myWord[1] = 'e';
    myWord[2] = 'l';
    myWord[3] = 'l';
    myWord[4] = 'o';
}

为什么这不起作用?

__global__ void setVal(char **word)
{

    char *myWord = word[(blockIdx.y * gridDim.x) + blockIdx.x];
    myWord = "Hello\0";

}

您应该开始更加关注编译器的输出。你的第二个内核代码:

__global__ void setVal(char **word)
{
    char *myWord = word[(blockIdx.y * gridDim.x) + blockIdx.x];
    myWord = "Hello\0";
}

编译为空内核,其中没有任何内容:

$ nvcc -arch=sm_20 -c nullkernel.cu 
nullkernel.cu(3): warning: variable "myWord" was set but never used

nullkernel.cu(3): warning: variable "myWord" was set but never used

原因是因为你认为的字符串复制赋值实际上只是一个指针赋值,在这种情况下,编译器足够聪明,知道 myWord 没有写入内存,所以它只是删除所有代码并警告你未使用 myWord。

如果我问一个反问句并这样重写代码:

__global__ void setVal(char **word)
{

    char *myWord = word[(blockIdx.y * gridDim.x) + blockIdx.x];
    const char[] mymsg = "Hello\0";
    myWord = mymsg;
}

为什么代码无法编译以及为什么即使编译了也永远不能“隐式”执行字符串复制赋值会更加明显?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cuda char* 变量赋值 的相关文章

  • cuda中内核的并行执行

    可以说我有三个全局数组 它们已使用 cudaMemcpy 复制到 GPU 中 但 c 中的这些全局数组尚未使用 cudaHostAlloc 分配 以便分配页面锁定的内存 而不是简单的全局分配 int a 100 b 100 c 100 cu
  • __device__ __constant__ 常量

    有什么区别吗 在 CUDA 程序中定义设备常量的最佳方法是什么 在 C 主机 设备程序中 如果我想将常量定义在设备常量内存中 我可以这样做 device constant float a 5 constant float a 5 问题 1
  • 错误:NVIDIA-SMI 失败,因为无法与 NVIDIA 驱动程序通信

    NVIDIA SMI 抛出此错误 NVIDIA SMI 失败 因为无法与 NVIDIA 通信 司机 确保安装了最新的 NVIDIA 驱动程序并且 跑步 我清除了 NVIDIA 并按照提到的步骤重新安装了它here https askubun
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 如何查看 GNU make 运行的命令?

    我正在尝试调试一个复杂的 Makefile 如何让 GNU make 打印它运行的所有命令 我在问题中找不到答案man页 使用 d 标志似乎不会打印它 这不是回答我的问题所必需的信息 但如果您想知道 我在编译基于 NVIDIA CUDA 库
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • CUDA:获取数组中的最大值及其索引

    我有几个块 每个块在整数数组的单独部分上执行 举个例子 块一从 array 0 到 array 9 块二从 array 10 到 array 20 我可以获得每个块的数组最大值的索引的最佳方法是什么 示例块一 a 0 到 a 10 具有以下
  • CUDA 5.0错误LNK2001:cuda方法无法解析的外部符号

    我的链接器有错误 1 gt ManifestResourceCompile 1 gt All outputs are up to date 1 gt kernel cu obj error LNK2001 unresolved extern
  • 云或烟雾的粒子系统

    我正在尝试使用 OpenGL 和 CUDA 制作一个简单的用于云和烟雾模拟的粒子系统 如何使粒子系统中的粒子表现得像真正的云或烟雾在低湍流风中的表现 我现在遇到的一些问题是 颗粒聚集成一个大球 粒子扩散到无限远 粒子突然弹射离开 我已经完成
  • CUDA Thrust 的多 GPU 使用

    我想使用我的两张显卡通过 CUDA Thrust 进行计算 我有两张显卡 在单卡上运行对于两张卡都适用 即使我在 std vector 中存储两个 device vector 也是如此 如果我同时使用两张卡 循环中的第一个周期将起作用并且不
  • OpenCV 2.4.3rc 和 CUDA 4.2:“OpenCV 错误:没有 GPU 支持”

    我在这张专辑中上传了几张截图 https i stack imgur com TELST jpg https i stack imgur com TELST jpg 我正在尝试在 Visual Studio 2008 中的 OpenCV 中
  • 如何在CUDA应用程序中正确应用线程同步?

    一般来说 我在应用程序中偶尔会使用线程同步 因为我并不经常需要此功能 我并不是真正的高级 C C 程序员 但我也不是初学者 我开始学习 CUDA C 对当今 GPU 与 CPU 的能力相比感到兴奋 我意识到 CUDA 编程主要是关于并行线程
  • CUDA Thrust 库中counting_iterators 的用途和用法

    我很难理解counting iterator在 CUDA 的推力库中 它的目的是什么以及如何使用 它在其他编程语言 例如 C 中也可用吗 计数迭代器只是一个迭代器 它从每次迭代器递增时前进的序列中返回下一个值 最简单的例子是这样的 incl
  • 将内核链接到 PTX 函数

    我可以使用 PTX 文件中包含的 PTX 函数作为外部设备函数 将其链接到另一个应调用该函数的 cu 文件吗 这是另一个问题CUDA 将内核链接在一起 https stackoverflow com questions 20636800 c
  • 我们如何在每次运行时使用不同的种子在 CUDA C 中生成随机数?

    我正在研究一个随机过程 我想在每次运行程序时在 CUDA 内核中生成不同的系列随机数 这类似于我们在 C 中声明 种子 时间 空 接下来是 srand 种子 和兰特 我可以通过内核将种子从主机传递到设备 但是 这样做的问题是我必须将整个种子
  • 如何安装libcusolver.so.11

    我正在尝试安装 Tensorflow 但它要求 libcusolver so 11 而我只有 libcusolver so 10 有人可以告诉我我做错了什么吗 这是我的 Ubuntu nvidia 和 CUDA 版本 uname a Lin
  • 对 CUDA 操作进行计时

    我需要计算 CUDA 内核执行的时间 最佳实践指南说我们可以使用事件或标准计时函数 例如clock 在Windows中 我的问题是使用这两个函数给出了完全不同的结果 事实上 与实践中的实际速度相比 事件给出的结果似乎是巨大的 我实际上需要这
  • 一维纹理内存访问比一维全局内存访问更快吗?

    我正在测量标准纹理和 1Dtexture 内存访问之间的差异 为此 我创建了两个内核 global void texture1D float doarray int size int index calculate each thread
  • 为什么使用 boost::none 无法通过 nvcc 编译?

    我正在尝试编译以下代码 include
  • 将数据从 GPU 复制到 CPU - CUDA

    我在将数据从 GPU 复制到 CPU 时遇到问题 一开始我在 GPU 空间中创建变量 device float gpu array 在此 GPU 函数中 我想将数据从 od fS gi 值 0 43 复制到 gpu array global

随机推荐

  • 在Powershell中使用Import-CSV,忽略注释行

    我认为我一定错过了一些明显的东西 因为我正在尝试使用 Import CSV 导入已在文件顶部注释掉行 始终以 作为第一个字符开头 的 CSV 文件 因此文件看起来像这样 SpecialCSV Version 1 0 0 Table Head
  • R,dplyr:如果每组只有一个唯一的非 NA 元素,则按组折叠字符变量元素

    假设我有以下 data framedf患者家乡和一项任意临床指标 心率 id lt c rep 1 3 each 2 rep 4 3 pt hometown lt c Atlanta NA NA San Diego NA NA San Fr
  • 使用 AWS Glue 或 PySpark 过滤 DynamicFrame

    我的 AWS Glue 数据目录中有一个名为 mytable 的表 该表位于本地 Oracle 数据库连接 mydb 中 我想将生成的 DynamicFrame 过滤为仅 X DATETIME INSERT 列 时间戳 大于特定时间 在本例
  • 在 Spring Data REST+HATEOAS 中删除 REST 关联

    我想知道如何通过 REST 调用删除多对多关联 我能够创建记录并将它们关联起来 但不知道如何删除 我有一个 Spring Boot 项目 其中使用 REST 和 HATEOAS 来绕过服务和控制器并直接公开我的存储库 我有一个用户模型 域类
  • 简单的 Haskell 循环

    我刚刚开始学习 Haskell 但现在缺少循环令人无限沮丧 我弄清楚了如何为函数编写循环 然而 我的问题是我想在迭代循环时输出一些结果 看来我必须使用调试来执行这个简单的任务 所以现在我只想看一个如何在主结构中打印 10 次字符串的示例 换
  • 使用VBA代码将表格从Excel复制到Word书签

    我实际上需要你帮助修改这个宏代码 我从其他地方得到了这个代码 抱歉 忘记了他的名字 基本上 我有来自 Excel Sheet1 的表数据源 我需要将该表传输到 MS Word 同时保留边框 字体大小 自动调整等格式 并使用名为 书签 的书签
  • ASP.NET 类库未遇到断点

    我有一个使用 vs2008 的 ASP NET Web 应用程序 它曾经让我达到断点 但由于本网站中的某些未知原因 它不再让我达到断点 我已经将所有内容设置为调试和重新构建大约一百万次以及其他所有内容 但似乎无法达到该死的断点 断点适用于该
  • #include 运行 pip install zbar 时生成 1 个错误

    我正在尝试奔跑pip install zbar由于某种原因 我似乎无法找到解决此依赖性问题的答案 任何帮助将不胜感激 请参阅下面的回溯 Downloading unpacking zbar Downloading zbar 0 10 tar
  • UIWebView:如何在 HTML 文本字段中插入文本

    I ve an UIWeb视图加载移动网络表单 URL 的位置 在我的应用程序的方法中 我想将一些文本插入具有焦点的 UIWebView 中的 HTML 文本字段中 我怎样才能做到这一点 有没有办法获取具有焦点的 HTML 元素的 ID 然
  • Python:基于参数的单例

    我正在关注这个link https stackoverflow com a 6798042 820410并尝试创建一个单例类 但是 考虑参数 在启动类时传递 以便在参数相同时返回相同的对象 因此 不要将类名 类引用存储为dictkey 我想
  • UWP 应用程序安装无需管理员权限、powershell 交互且无需 Windows 应用商店?

    这里有 windows uwp 专家 吗 我已经研究下面提到的主题一天了 因为我不敢相信我们无法分发我们的 UWP 应用程序 是不是真的不可能通过以下方式分发 UWP 应用程序与商店不同的渠道无需手动运行 与powershell脚本交互 因
  • .htaccess:如何删除 URL 中的子文件夹子文件夹?

    我正在尝试重定向此网址www domain com username to www domain com username public但删除 public从网址 这是我的 htaccess file
  • 如何将 singledispatchmethod 与继承类一起使用

    在我的代码中 我有以下课程 class A functools singledispatchmethod def handle arg pass 我想要其他类继承A并重载泛型方法handle像这样 class B A handle regi
  • 使用 SWT 时的 Java SwingWorker

    我有一个问题如下 我编写了一个简单的简约应用程序 它使用 SWT 作为 GUI 在特定选项卡中 它显示一个通过 REST Api 调用填充信息的表格 另外 我还有另一种方法将此表导出到 CSV 文件中 这绝对没问题 现在我需要某种自动更新
  • Adobe After Effects 扩展脚本 - 如何从命令行运行脚本并传入参数?

    我正在尝试从命令行运行 Adob e AE 扩展脚本 我使用 r 参数 可以很好地运行脚本 但是 是否可以向脚本传递参数 就像 如果我从命令行运行这个 C gt C Program Files Adobe Adobe After Effec
  • NSMutableArray containsObject 返回 true,但它不应该

    我发现了类似的问题 但是 containsObject没有像我预期的那样工作 我的问题是NSMutableArray containsObject方法在不应该返回 true 时返回 true 当尝试生成随机唯一颜色并添加到数组时 检查是否存
  • 如何以编程方式将 Factor-bundle 与 browserify 一起使用?

    我想使用 Factor bundle 来查找 browserify 入口点的公共依赖项并将它们保存到单个公共包中 https www npmjs org package factor bundle https www npmjs org p
  • 如何使用 servlet 中的保存文件对话框?

    我试图让用户将 servlet 中的数据保存为 CSV 文件 最初我只是找到他们的桌面来放置文件 但此路线的权限会被拒绝 所以我想询问用户他们想要将文件保存在哪里 据我所知 我无法在 servlet 中使用 Swing API 因为 Tom
  • 点在函数中获取“脚本”

    我的 PowerShell 配置文件变得有点麻烦 我发现我并不总是使用其中的所有内容 我想减小我的个人资料的大小并加快启动时间 但我仍然希望能够访问这些功能相对地当我需要它们时很快 有没有办法 点源 https en wikipedia o
  • Cuda char* 变量赋值

    这是本文所选答案的后续问题 cuda程序的输出不是预期的 https stackoverflow com questions 6561005 output of cuda program is not what was expected 6