Cuda 不计算它的预期,只是默默地忽略我的代码

2023-12-29

我遇到了一个非常奇怪的问题:Mu 9800 GT 似乎根本不计算。 我已经尝试了在互联网上找到的所有 hello-worlds,这是其中之一:

该程序在主机上创建 1..100 数组,将其发送到设备,计算每个值的平方,将其返回到主机,打印结果。

#include "stdafx.h"

#include <stdio.h>
#include <cuda.h>

__global__ void square_array(float *a, int N)
{
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx<N) a[idx] = a[idx] * a[idx];
}

// main routine that executes on the host
int main(void)
{
float *a_h, *a_d; // Pointer to host & device arrays
const int N = 100; // Number of elements in arrays
size_t size = N * sizeof(float);
a_h = (float *)malloc(size); // Allocate array on host
cudaMalloc((void **) &a_d, size); // Allocate array on device
// Initialize host array and copy it to CUDA device
for (int i=0; i<N; i++) a_h[i] = (float)i;
cudaMemcpy(a_d, a_h, size, cudaMemcpyHostToDevice);
// Do calculation on device:
int block_size = 4;
int n_blocks = N/block_size + (N%block_size == 0 ? 0:1);
square_array <<< n_blocks, block_size >>> (a_d, N);
// Retrieve result from device and store it in host array
cudaMemcpy(a_h, a_d, sizeof(float)*N, cudaMemcpyDeviceToHost);
// Print results
for (int i=0; i<N; i++) printf("%d %f\n", i, a_h[i]);
// Cleanup
free(a_h); cudaFree(a_d);
}

所以输出预计为:

1 1.000

2 4.000

3 9.000

4 16.000

.. 我发誓在 2009 年它运行得非常完美(vista 32、deviceemu)

现在我得到输出:

1 1.000

2 2.000

3 3.000

4 4.000

所以我的卡没有做任何事情。可能是什么问题? 配置是: win7x64 视觉工作室 2010 32 位 cuda工具包3.2 64位

编译设置:cuda 3.2 工具包、32 位目标平台、deviceemu 与否 - 没关系,结果是一样的。

我也在我的vmware xp(32位) Visual Studio 2008上尝试过。结果是一样的。

请帮助我,我几乎没有编译程序,现在我需要它工作。

您还可以查看我的项目及其所需的一切(2.7 KB)

谢谢,伊利亚


您的代码在我的 Linux 系统上产生了预期的结果,因此我建议检查返回的错误代码cudaMalloc and cudaMemcpy以确保没有无提示的驱动程序/运行时错误。例如

cudaError_t error = cudaMemcpy(a_h, a_d, sizeof(float)*N, cudaMemcpyDeviceToHost);
printf("error status: %s\n", cudaGetErrorString(error));

应该打印

error status: no error

如果调用成功。

另外,我相信设备模拟在 CUDA 3.0 中已被弃用,并在 CUDA 3.1 中被完全删除。我不知道这是否与你的问题有关。

要编译多个文件,您只需执行以下操作

$nvcc -c foo.cu
$nvcc -c bar.cu
$nvcc -o foobar foo.o bar.o

或者,您可以在最后一步中使用以下命令进行链接g++ like so

$g++ -o foobar foo.o bar.o -L/usr/local/cuda/lib64 -lcudart
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cuda 不计算它的预期,只是默默地忽略我的代码 的相关文章

  • 在 VB 2010 中禁用“默认实例”

    我已经开始在 VB 2010 中做一些基本的 win 表单工作 我真的很烦恼默认实例 https stackoverflow com q 4698538 794234特征 有没有办法可以完全禁用它并像普通类一样使用这些类 向表单的构造函数添
  • 仅在调试版本中防止 NuGet 恢复包

    我在解决方案中启用了 恢复包 选项 因此当我将代码上传到 CI 服务器时 它会更新正确构建所需的所有包 并且效果很好 现在的问题是 在我的本地计算机上 构建需要很长时间才能启动 因为正在 更新软件包 有没有办法仅在发布版本中启用恢复包 我尝
  • 源代码管理无法启动手动合并工具,为什么?

    我曾经执行过tf 合并 Alpha Dev Alpha Main recursive从命令提示符将更改从 Dev 分支合并到 Main 分支 在发生冲突时 它会显示 解决冲突 窗口 我们可以通过选择选项手动解决冲突在合并工具中合并更改 直到
  • SSIS 包在 sql server 代理中失败,但在 Visual Studio 中失败。 ODBC 连接

    我有一个 SSIS 包 在 Visual Studio 2010 中运行良好 但作为 SQL Server 的一项作业 它在连接到 ODBC 数据库时失败 该项目使用密码对敏感数据进行加密 这是因为代理服务器不是我的帐户 也恰好是使用连接字
  • UL 标签内的标签 H3 [重复]

    这个问题在这里已经有答案了 可能的重复 UL 中是否允许除 LI 之外的任何内容 https stackoverflow com questions 6056142 is anything except lis allowed in a u
  • 具有 Cuda Thrust 的多个 GPU?

    如何将 Thrust 与多个 GPU 一起使用 这只是使用 cudaSetDevice deviceId 的问题吗 然后运行相关的 Thrust 代码 使用 CUDA 4 0 或更高版本 cudaSetDevice deviceId 接下来
  • Visual Studio 2010 的“线程”窗口中的 和 [Thread Destroyed] 详细信息

    我一直在尝试调试与一个应用程序的线程相关的一些问题 当我附加到应用程序时 我看到一个像这样的窗口 这个名为 Thread Destroyed 的线程是什么 应用程序代码肯定不会写这个名称 这意味着线程的调用堆栈不可用 采集引擎 线程在应用程
  • 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
  • PyInstaller 是否包含 CUDA

    我正在开发一个Python脚本 我使用Python 3 7 3 它使用tensorflow gpu 1 14 0 并使用PyInstaller 3 5将此脚本转换为可执行文件 我使用的是 CUDA 10 0 和 cuDNN 7 6 1 我的
  • lambda 表达式到函数指针的转换

    这是这个问题的后续问题 Lambda 如何作为参数传递 https stackoverflow com questions 3321283 c0x lambda how can i pass as a parameter 据推测 MSDN
  • IntelliSense:对象具有与成员函数不兼容的类型限定符

    我有一个名为 Person 的类 class Person string name long score public Person string name long score 0 void setName string name voi
  • 如何将 Visual-Studio 2010 切换到 c++11

    我是 c 编程新手 我想尝试 c 11 新功能 那么我要问的是如何切换 Visual studio 2010 才能编译 c 11 源代码 你可以参考这个表 VC10 中的 C 0x 核心语言功能 表格 http blogs msdn com
  • WPF C# 输入框

    我正在使用 C 构建 WPF 应用程序 我想弹出一个对话框提示用户输入他 她的名字 之后 我将跟踪该名称并将一些数据保存到 txt使用该名称的文件 例如 输入的名称是姓名 约翰 所以我有数据数据 1 2 3 然后我将 数据 保存在John
  • Visual Studio 2010 中的 GTK#

    我一整天都在尝试让 GTK 在 Windows Server 2008 R2 x64 上的 Visual Studio 2010 中工作 以便我可以开始编写漂亮的跨平台 GUI 应用程序 但我对 C 有点陌生 我有一个世界的麻烦 我安装了最
  • Bank 在字长方面存在冲突

    我读过一些关于共享内存的好文章 但我对银行冲突有初步疑问 据说 如果线程 1 和线程 2 从存储体 0 访问字 0 则不存在存储体冲突 但如果他们访问不同的单词 就会出现银行冲突 但我的问题是不同的单词如何可以驻留在一个银行中 由于bank
  • 在 Visual Studio 2010 解决方案级别定位 .NET Framework 的特定版本

    我想在我的 Visual Studio 2010 解决方案中同时针对 NET 3 5 和 NET 4 0 我知道我可以设置
  • 多图像选择

    我正在使用 Windows Phone SDK 7 1 C 在 WP7 中制作应用程序 正在使用照片选择器任务 但我想选择 9 张图像 而这里我只能选择一张图像 如何一次选择 9 张图像 请帮助我 这是我的代码 public partial
  • 用于计算邻居列表的最佳 GPU 算法

    给定 3D 中数千个点的集合 我需要获取落在某个截止值 以欧几里得距离而言 内的每个粒子的邻居列表 并且如果可能的话 从最近到最远排序 在 CUDA 或 OpenCL 语言中 哪种 GPU 算法最快 我所知道的最快的 GPU MD 代码之一
  • CUDA计算能力2.0。全局内存访问模式

    CUDA 计算能力 2 0 Fermi 全局内存访问通过 768 KB L2 缓存进行 看起来 开发人员不再关心全局内存库 但全局内存仍然非常慢 因此正确的访问模式很重要 现在的重点是尽可能多地使用 重用 L2 我的问题是 如何 我将感谢一

随机推荐

  • 如何通过 API 查询 Asana 中的存档任务

    我有兴趣从 Asana 导出数据 以便我们可以从中运行报告 为此 我需要获取所有任务的列表 包括存档的任务 我对列出任务的API的理解是 如果任务被存档 那么在获取项目的任务时将不会检索到它 有没有办法查询所有任务 无论它们是否已存档 有a
  • 绘制线性回归后预测的条件密度

    这是我的数据框 data lt structure list Y c NA 1 793 0 642 1 189 0 823 1 715 1 623 0 964 0 395 3 736 0 47 2 366 0 634 0 701 1 692
  • 神经网络标准化输出数据

    我有神经网络的训练数据以及预期输出 每个输入都是 10 维向量 有 1 个预期输出 我已经使用高斯规范化了训练数据 但我不知道如何规范化输出 因为它只有单一维度 有任何想法吗 Example 原始输入向量 128 91 71 076 100
  • Import-Module 仅在从 Get-Module 进行管道传输时才有效

    I wrote a simple PowerShell module I need to keep more versions of the module All paths to versions are added to env PSM
  • case when 语句中按列号对表进行排序

    是否可以在 case when 语句中对带有列号的表进行排序 这是代码 WITH Table1 AS Table2 AS INSERT INTO temp SELECT TOP 50 one id one sales two count o
  • 在heroku上阻止IP

    我在 heroku 的文档或谷歌上都没有找到这个 通常这是在主机文件中完成的 有谁知道如何在heroku上屏蔽IP吗 Heroku 没有可用于阻止 IP 的防火墙 因此您必须在应用程序级别阻止它 或者必须在应用程序前面放置某种代理以用于阻止
  • 替换列表中的每个第二个元素

    我得到了一个二维列表 5 80 2 57 5 97 2 78 2 56 6 62 5 34 3 54 6 5 2 58 5 61 5 16 其中我需要将每个第二个元素更改为 0 从第一个元素开始 所以它应该看起来像这样 0 80 0 57
  • NuGet install.ps1 脚本中的 $package 和 $project 参数包含什么?

    我正在为 NuGet 包编写第一个安装 PowerShell 脚本 我正在尝试从以下位置复制文件lib文件夹放入tools另一个 NuGet 包的文件夹 默认的 install ps1 脚本有四个参数 其中两个是 package proje
  • 累积 R 中每个可能组合的值

    假设我有数据test 给定的 dput 其中 list col 说items test lt structure list items list a c b c c d e f c g h ID c 1 1 1 2 2 row names
  • 为每个线程创建一个非线程安全对象并使用happens-before保证

    我想将 SAAJ 中的 SOAPConnectionFactory 和 MessageFactory 类与多个线程一起使用 但事实证明我不能假设它们是线程安全的 一些相关帖子 javax xml soap MessageFactory的实例
  • 如何使用“out”参数测试方法?

    我正在尝试为具有参数的方法编写单元测试 我的方法具体来说是我的自定义对象的 TryParse 方法 我正在使用 NET 4 5 5 和 Visual Studio 2013 这使我能够使用 PrivateType 对象完全实现私有 内部和静
  • Angular 2 教程上的 Meteor JS 路由不起作用

    我正在尝试从meteor js web 制作社交教程 但我陷入了第5 步路由和多视图当我点击链接查看 派对详细信息 时 JavaScript 控制台显示该路线不存在 这是具有链接的视图中的代码 a party name a 这是路线中的代码
  • java:在生产环境中使用 printStackTrace

    我将在生产服务器下部署我们的 Web 应用程序 在生产环境中将 printStackTrace 包含在 catch 块下是否可以接受 因为catch块下的日志无助于了解错误的确切原因 所以请告诉我在 catch 块下使用 printStac
  • 出现 JS 异常:ReferenceError:找不到变量:进程

    从react native 0 26升级到0 29 并运行react native升级 后 我在android调试器中收到以下错误 Got JS Exception ReferenceError Can t find variable pr
  • 技术演示的好技巧[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我计划为我们正在构建的产品进行技术演示 目标受众是技术开发人员 所以 大多数时候 我会通过 Visual Studio 中的代码进行调
  • Visual Studio C++ dll 库在 Qt 应用程序中崩溃

    我在 MS Visual C DLL 库和 Qt 程序之间共享 std string 数据时遇到问题 我拥有的是 用 Visual C 2010 Express 编写的 DLL 库 导出一种方法 extern C declspec dlle
  • rstudio-server 的全新会话

    我正在虚拟化 vmware player ubuntu 机器上运行 rstudio server 并将大量数据处理到 RAM 中 我发现在一段不活动之后 会话会暂停数据 问题是恢复此会话需要很长时间 并且导致主机和虚拟机严重滞后 我只想终止
  • J2EE/EJB + 服务定位器:缓存 EJB Home 查找结果安全吗?

    在 J2EE 应用程序中 我们在 weblogic 中使用 EJB2 为了避免浪费时间构建初始上下文和查找 EJB Home 接口 我正在考虑服务定位器模式 http java sun com blueprints patterns Ser
  • Airflow 1.10.2 不将日志写入 S3

    我正在尝试在 docker 容器中运行气流并将日志发送到 s3 我有以下环境 气流版本 1 10 2 还更新了airflow cfg中的以下内容 logging config class log config LOGGING CONFIG
  • Cuda 不计算它的预期,只是默默地忽略我的代码

    我遇到了一个非常奇怪的问题 Mu 9800 GT 似乎根本不计算 我已经尝试了在互联网上找到的所有 hello worlds 这是其中之一 该程序在主机上创建 1 100 数组 将其发送到设备 计算每个值的平方 将其返回到主机 打印结果 i