问题标签 [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.
c++ - 我应该为这个艺术项目使用哪个 IDE?
我有一个艺术项目,需要处理实时视频馈送以用作粒子系统的基础,该粒子系统将使用 OpenGL 渲染并投影到舞台上。我有一个支持 CUDA 的显卡,我想如果能够将它用于图像和粒子系统处理会很好。这个项目只需要在我的电脑上运行。
我通常是一个 C# asp.net Visual Studio 有点人,但对于这个项目,我计划使用 c++。我应该在 Ubuntu 上的 Eclipse 中还是在 Windows 中的 Visual Studio 中进行工作?
我意识到这可能是相当随意的,但我想知道一个 IDE/OS 是否比另一个更适合这种工作
visual-studio - 为什么 CUDA.rules 有两个相同的命令行
CUDA.rules 文件的命令行是:
echo [CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch] -ccbin "$(VCInstallDir)bin" [Emulation] [FastMath] [Defines] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [ RuntimeChecks] [Runtime] [TypeInfo] [ExtraCppOptions]" [Include] [MaxRegCount] [PtxAsOptionV] [NvccCompilation] "$(InputPath)"
[CompilerPath] [Keep] [CInterleavedPTX] [ExtraNvccOptions] [Arch] -ccbin "$(VCInstallDir)bin" [Emulation] [FastMath] [Defines] -Xcompiler "/EHsc [Warning] /nologo [Optimization] /Zi [RuntimeChecks ] [运行时] [TypeInfo] [ExtraCppOptions]" [包括] [MaxRegCount] [ptxasoptionv] [NvccCompilation] "$(InputPath)""
为清楚起见,我添加了一行,因为它显示了两个相同的命令(据我所知),除了第一个命令前面有“echo”。有谁知道这样做的目的是什么?
谢谢
cpu - CUDA 回退到 CPU?
我有一个 CUDA 应用程序,它在一台计算机(带有 GTX 275)上运行良好,而在另一台计算机上,GeForce 8400 的运行速度慢了大约 100 倍。我的怀疑是有某种回退使代码实际上在 CPU 上而不是在 GPU 上运行。
有没有办法真正确保代码在 GPU 上运行?
这个后备是否记录在某处?
什么条件可以触发它?
编辑:代码是使用 8400 所具有的计算能力 1.1 编译的。
c++ - c++中的3d卷积
我正在寻找一些实现 3d 卷积的源代码。理想情况下,我需要 C++ 代码或 CUDA 代码。如果有人能指出一个好的和快速的实现,我将不胜感激:-)
干杯
c - CUDA编程面试题?
我将在一周后接受一个涉及 CUDA 编程(希望是 C 语言)的入门级职位的面试。
我想知道是否有人可以提出一些我在面试中可以期待的面试问题。
我已经阅读了官方的编程指南,但我现在并不那么方便。
谢谢。
optimization - OpenCL 纹理内存
我对 OpenCL 还很陌生,所以请多多包涵。
在我的代码的第一次迭代中,我为大型数据集使用了基本的内存缓冲区,并将它们声明为全局的。然而,现在我正在寻求改进时间,我想为此使用纹理内存。在 CUDA 版本中,我们使用 cudaBindTexture 和 tex1Dfetch 来获取大型一维浮点数组的数据。根据我对规范的理解,纹理内存与图像内存是一回事。但是,由于只有最大高度和宽度的 2D 和 3D 图像对象,我遇到了一些问题。我的数组大于最大高度/宽度,但不是最大高度 * 最大宽度。我必须将我的一维数组转换为二维吗?或者有更好的方法吗?
还是我完全关闭了?
我确实阅读了http://forums.nvidia.com/index.php?showtopic=151743和http://forums.nvidia.com/index.php?showtopic=150454但它们在纹理内存是否具有确切的结论最佳实践和编程指南中提到的实际上是图像对象。
谢谢,非常欢迎任何帮助/建议!
c - c 一个数组到另一个数组的大小
嗨,我有以下代码...
它工作得很好......现在假设我有以下
如何为 t 做 cudaMalloc 就好像它是一维数组(考虑到每个元素都有不同的大小)?
c - 是否可以使用 autoconf 检查 nvcc 编译?
我正在尝试在配置过程中测试一些典型的 cuda 功能。如何在我的 configure.ac 中编写它?就像是:
但是在 AC_LANG 中没有定义 nvcc。我必须创建自己的 m4 宏吗?
c - 尝试一起编译多个 CUDA 文件时出现链接错误 LNK2005
我有一个运行良好的 CUDA 程序,但目前都写在一个文件中。我想把这个大文件分成几个小文件,以便于维护和导航。
新结构是:
头.cuh
文件包含结构和函数原型,.cu
文件包含函数定义(像往常一样)。主文件包括bar.cuh
和bar.cu
包括foo.cuh
. 所有 .cu 文件都包含 cutil_inline.h,以便能够使用 CUDA 功能。
因此 :
问题是当我用这个新结构编译我的 Visual Studio 2008 项目时,我得到了大量的链接错误:
我理解它们的意思(所有已经定义的符号都是 cutil_inline.h 的一部分),但我必须在所有文件中包含这个头文件,否则它不会编译。我究竟做错了什么 ?
更新:为了澄清情况: * 将所有代码放在一个大文件中,它可以编译、链接和运行良好 * 使用新结构(几个较小的文件)并在所有 .cu 文件中包括 cutil_inline.h,它编译正确但在将 * 与新结构链接并仅在主文件中包含 cutil_inline.h,它在编译期间失败,说 cutil 函数在不包含 cutil_inline.h 的文件中未知(如预期的那样,但我不得不尝试一切) - 项目清单
.net - 强制托管线程和操作系统线程之间的关系(CUDA 用例)
问题
我正在尝试创建一个与.net 良好集成的 CUDA 应用程序。设计目标是拥有几个可以从托管代码调用的 CUDA 函数。数据还应该能够在函数调用之间保持在设备上,以便可以将其传递给多个 CUDA 函数。
重要的是,每个单独的数据只能由单个 OS 线程访问(根据 CUDA 的要求)
我的策略
我将 CUDA 功能和设备指针包装在托管 C++ 代码中。一个 CUDA 设备指针可以包装在一个DevicePointer
用 MC++ 编写的类中。如果类跟踪它正在使用的线程,它可以强制只有单个线程可以访问 CUDA 设备指针。
然后我将设计程序,以便只有一个线程会尝试访问任何给定的数据。
我需要帮助的地方
我做了一些研究,并阅读了托管线程和操作系统线程之间的区别。一般来说,两者之间似乎存在多对多的关系。
这意味着即使我只使用单个托管线程,它也可以切换操作系统线程,并且我将失去对设备指针的访问权限。
有什么方法可以强制 CLR 不在 OS 线程之间移动托管线程?