问题标签 [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.
memory - CUDA 与 CuBlas 内存管理
我注意到我可以将内存块用于使用 cudamalloc() 或 cublasalloc() 函数分配的矩阵来调用 cublas 函数。使用 cudamalloc() 而不是 cublasalloc() 分配的数组的矩阵传输速率和计算速度较慢,尽管使用使用 cudamalloc() 的数组还有其他优点。为什么会这样?很高兴听到一些评论。
cuda - CUDA 主机到设备(或设备到主机)memcpy 操作与应用程序在同一显卡上使用 OpenGL 渲染图形
我已经在 CUDA 论坛上发布了我的问题,但不确定是否适合在此处发布链接以获得更多想法,以防两个论坛之间存在大量不同的受众。链接在这里。对于给您带来的任何不便,我深表歉意,并感谢对此问题的任何评论,因为我还没有收到有关特定 CUDA 内存访问和管理问题的一些细节的回复。提前致谢。
cuda - CUDA,在运行时找出内核中的寄存器数量
如何找出 cuda 内核在运行时使用的寄存器数量?我知道如何在编译期间查找信息,但我不想在
谢谢
memory-management - 主机和设备均可访问 CUDA 内存分配
我试图找出一种方法来分配主机(CPU)和设备(GPU)都可以访问的内存块。除了使用 cudaHostAlloc() 函数来分配 CPU 和 GPU 都可以访问的页面锁定内存之外,还有其他分配此类内存块的方法吗?提前感谢您的评论。
cuda - 如何使用软件实现在没有 GPU 的情况下运行 CUDA?
我的笔记本电脑没有 nVidia 显卡,我想在 CUDA 上工作。该网站说 CUDA 也可以在非 cuda 硬件上以仿真模式使用。但是,当我尝试安装从他们的网站下载的 CUDA 驱动程序时,它会给出错误“nvidia 安装程序找不到与您当前硬件兼容的任何驱动程序。安装程序现在将退出”。
此外,当我尝试在 Visual Studio 2008 中从 SDK 运行示例代码时,我收到一个错误,即找不到 .obj 文件。
cuda - CUDA 编译错误
尝试在 CUDA SDK 中运行示例代码时出现此错误。我有 CUDA 2.3 和 Visual Studio 2008
链接:致命错误 LNK1181:无法打开输入文件 'cutil32D.lib'
任何指针如何解决这个问题?
arrays - CUDA 减少了许多大小不等的小型阵列
我想知道是否有人可以建议计算CUDA中大量相对较小但大小不同的数组的均值/标准偏差的最佳方法?
SDK中的并行缩减示例适用于单个非常大的数组,看起来大小方便地是每个块的线程数的倍数,但我的情况完全不同:
然而,从概念上讲,我有大量的对象,每个对象都包含两个组件,upper
并且lower
每个组件都有一个x
和一个y
坐标。IE
这些数组中的每一个都有大约800
长度,但它在对象之间(不在对象内)有所不同,例如
请注意,以上只是我表示数组的方式,我的数据没有存储在C
结构或类似的东西中:数据可以按我需要的任何方式组织。关键是,对于每个数组,需要计算平均值、标准偏差和最终的直方图,并且在一个特定对象内,需要计算数组之间的比率和差异。
我应该如何将这些数据发送到 GPU 设备并组织我的线程块层次结构?我的一个想法是对我的所有数组进行零填充,以使它们具有相同的长度,并在每个对象上使用一组块,但如果该方法完全可行的话,似乎存在各种问题。
提前致谢
multithreading - 为 MFC 应用程序清理切换线程
我正在尝试清理由特定线程创建的特定内存对象(因此只能由该线程访问)。我实现这一目标的唯一方法是在释放该内存块时切换到该特定线程。
这就是我分配特定内存上下文的方式:http: //imagebin.ca/img/S6mwZBFu.jpg
这就是我试图做的:
替代文字 http://imagebin.ca/img/DeTe9Z6h.jpg
我最初以如下方式添加了内存上下文的创建和销毁:
但是,这种方法效果不佳,即当我清理“删除 theCudaObj;”时程序崩溃了。线。我想知道是否可以在清理时切换活动线程,或者分配 CUDA 上下文以供两个线程访问,以便我可以通过两个线程轻松地清理和访问它。提前感谢您的建议。
c - 带括号和不带括号的循环在 C 中的处理方式不同吗?
我正在调试器中单步执行一些 C/CUDA 代码,例如:
我完全糊涂了,因为调试器一步步通过了它,尽管输出是正确的。我意识到,当我像下面的代码片段那样在循环周围放置大括号时,它在调试器中的行为与预期的一样。
在 C 或调试器中以不同方式处理的循环也是无括号的,或者它可能是 CUDA 特有的。
谢谢
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)?
太感谢了
问候简