问题标签 [cuda]

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 投票
1 回答
2171 浏览

memory - CUDA 与 CuBlas 内存管理

我注意到我可以将内存块用于使用 cudamalloc() 或 cublasalloc() 函数分配的矩阵来调用 cublas 函数。使用 cudamalloc() 而不是 cublasalloc() 分配的数组的矩阵传输速率和计算速度较慢,尽管使用使用 cudamalloc() 的数组还有其他优点。为什么会这样?很高兴听到一些评论。

0 投票
1 回答
1180 浏览

cuda - CUDA 主机到设备(或设备到主机)memcpy 操作与应用程序在同一显卡上使用 OpenGL 渲染图形

我已经在 CUDA 论坛上发布了我的问题,但不确定是否适合在此处发布链接以获得更多想法,以防两个论坛之间存在大量不同的受众。链接在这里。对于给您带来的任何不便,我深表歉意,并感谢对此问题的任何评论,因为我还没有收到有关特定 CUDA 内存访问和管理问题的一些细节的回复。提前致谢。

0 投票
2 回答
1115 浏览

cuda - CUDA,在运行时找出内核中的寄存器数量

如何找出 cuda 内核在运行时使用的寄存器数量?我知道如何在编译期间查找信息,但我不想在

谢谢

0 投票
3 回答
3335 浏览

memory-management - 主机和设备均可访问 CUDA 内存分配

我试图找出一种方法来分配主机(CPU)和设备(GPU)都可以访问的内存块。除了使用 cudaHostAlloc() 函数来分配 CPU 和 GPU 都可以访问的页面锁定内存之外,还有其他分配此类内存块的方法吗?提前感谢您的评论。

0 投票
3 回答
14414 浏览

cuda - 如何使用软件实现在没有 GPU 的情况下运行 CUDA?

我的笔记本电脑没有 nVidia 显卡,我想在 CUDA 上工作。该网站说 CUDA 也可以在非 cuda 硬件上以仿真模式使用。但是,当我尝试安装从他们的网站下载的 CUDA 驱动程序时,它会给出错误“nvidia 安装程序找不到与您当前硬件兼容的任何驱动程序。安装程序现在将退出”。

此外,当我尝试在 Visual Studio 2008 中从 SDK 运行示例代码时,我收到一个错误,即找不到 .obj 文件。

0 投票
3 回答
6455 浏览

cuda - CUDA 编译错误

尝试在 CUDA SDK 中运行示例代码时出现此错误。我有 CUDA 2.3 和 Visual Studio 2008

链接:致命错误 LNK1181:无法打开输入文件 'cutil32D.lib'

任何指针如何解决这个问题?

0 投票
2 回答
1455 浏览

arrays - CUDA 减少了许多大小不等的小型阵列

我想知道是否有人可以建议计算CUDA中大量相对较小但大小不同的数组的均值/标准偏差的最佳方法?

SDK中的并行缩减示例适用于单个非常大的数组,看起来大小方便地是每个块的线程数的倍数,但我的情况完全不同:

然而,从概念上讲,我有大量的对象,每个对象都包含两个组件,upper并且lower每个组件都有一个x和一个y坐标。IE

这些数组中的每一个都有大约800长度,但它在对象之间(不在对象内)有所不同,例如

请注意,以上只是我表示数组的方式,我的数据没有存储在C结构或类似的东西中:数据可以按我需要的任何方式组织。关键是,对于每个数组,需要计算平均值、标准偏差和最终的直方图,并且在一个特定对象内,需要计算数组之间的比率和差异。

我应该如何将这些数据发送到 GPU 设备并组织我的线程块层次结构?我的一个想法是对我的所有数组进行零填充,以使它们具有相同的长度,并在每个对象上使用一组块,但如果该方法完全可行的话,似乎存在各种问题。

提前致谢

0 投票
2 回答
369 浏览

multithreading - 为 MFC 应用程序清理切换线程

我正在尝试清理由特定线程创建的特定内存对象(因此只能由该线程访问)。我实现这一目标的唯一方法是在释放该内存块时切换到该特定线程。

这就是我分配特定内存上下文的方式:http: //imagebin.ca/img/S6mwZBFu.jpg

这就是我试图做的:

替代文字 http://imagebin.ca/img/DeTe9Z6h.jpg

我最初以如下方式添加了内存上下文的创建和销毁:

但是,这种方法效果不佳,即当我清理“删除 theCudaObj;”时程序崩溃了。线。我想知道是否可以在清理时切换活动线程,或者分配 CUDA 上下文以供两个线程访问,以便我可以通过两个线程轻松地清理和访问它。提前感谢您的建议。

0 投票
2 回答
679 浏览

c - 带括号和不带括号的循环在 C 中的处理方式不同吗?

我正在调试器中单步执行一些 C/CUDA 代码,例如:

我完全糊涂了,因为调试器一步步通过了它,尽管输出是正确的。我意识到,当我像下面的代码片段那样在循环周围放置大括号时,它在调试器中的行为与预期的一样。

在 C 或调试器中以不同方式处理的循环也是无括号的,或者它可能是 CUDA 特有的。

谢谢

0 投票
2 回答
1855 浏览

cryptography - 在 CUDA __device__ 内核中生成 char 数组的所有组合

我需要帮助。我开始用 CUDA (2.3 / 3.0beta) 编写一个常见的暴力破解器/密码猜测器。我尝试了不同的方法来生成定义的 ASCII 字符集的所有可能的纯文本“候选”。

在此示例代码中,我想生成所有 74^4 种可能的组合(并将结果输出回主机/标准输出)。

CUDA 代码(使用 2.3 和 3.0b - sm_10 编译) - combinaions.cu:

代码应该可以毫无问题地编译,但输出不是我所期望的。

在仿真模式下:

在发布模式下:

我还在代码的不同行上使用了 __threadfence() 和或 __syncthreads() 也没有成功......

附言。如果可能的话,我想在内核函数中生成所有内容。我还尝试在主机主函数和 memcpy 中“预”生成可能的纯文本候选者到device,这仅适用于非常有限的字符集大小(因为设备内存有限)。

  • 关于输出的任何想法,为什么重复(即使使用 __threadfence() 或 __syncthreads())?

  • 在 CUDA 内核中快速生成纯文本(候选)的任何其他方法:-) (~75^8)?

太感谢了

问候简