cuda相关内容
此警告是什么,我如何修复它? warning: ‘cudaError_t cudaMemcpyToArray(cudaArray_t, size_t, size_t, const void*, size_t, cudaMemcpyKind)’ is deprecated [-Wdeprecated-declarations] 推荐答案 已弃用意味着不建议使用它,可能会在下一个CUD
..
我知道,在出现分歧的情况下,IF和ELSE都是在GPU上为每个工作项执行的,最后在掩码的帮助下我们选择了其中一个。但我不能理解,如果我们两个都被执行了,那么它怎么会增加执行单元的空闲。 我已经讨论了一些关于堆栈溢出的问题,但它们与堆栈溢出如何影响执行单元的空闲无关。 有人能给我解释清楚这个概念吗?分歧如何增加执行单元中的停滞或空闲? 推荐答案 在执行两个代码路径以选择一个结
..
我使用Eigen(让我们称之为inversion.cpp)进行矩阵求逆(下面提供的代码)。Inversion.cpp使用g++编译并给出正确的倒数。 现在我将代码名更改为Inversion.cu,并尝试使用NVCC进行编译。编译失败,出现一长串错误。 #include using namespace Eigen; using namespace std
..
我正在尝试找出CUDA中的常量内存、纹理内存和全局内存之间的区别。 我可以找到以下相关文章,但找不到我的问题的答案 global vs shared memory in CUDA Usage of global vs. constant memory in CUDA 这篇文章讨论了这三种方法对性能的影响: http://forum.beyond3d.com/showthre
..
我希望将单个位集与一组其他位集(~100k)进行XOR运算,并计算每个XOR结果的集合位数。单个位集的大小约为20k位。 位集已转换为unsigned int数组,以便能够使用内在__popc()函数。‘Bunch’已连续驻留在设备内存中。 我当前的内核代码如下: // Grid/Blocks used for kernel invocation dim3 block(32);
..
我在一台配备A100图形处理器的服务器上运行。在服务器重置后尝试运行TensorFlow代码时,TensorFlow无法识别GPU。运行tf.config.list_physical_devices('GPU')生成CUDA_ERROR_NOT_INITIALIZED: 2021-09-09 07:41:42.956917: I tensorflow/stream_executor/plat
..
我有一台配备了NVIDA GTX 1050Ti GPU(计算能力6.1)的计算机,正在尝试在我用CUDA 11.4构建的程序中分析一个内核。我的操作系统发行版是Devuan GNU/Linux 4 Chimaera(~=Debian 11 Bullseye)。 NSight Compute启动我的程序,并在API调用后向我显示API调用,但当我到达第一次启动内核时,它在API调用清单的详细信
..
CMake的较新版本(3.18及更高版本)了解CUDA代码编译所针对的CUDA体系结构的选择。目标具有CUDA_ARCHITECTURES属性,当设置该属性时,将为您生成适当的-gencode arch=whatever,code=whatever编译选项。如果您不设置此值,您甚至会收到警告: CMake Error in CMakeLists.txt: CUDA_ARCHITECTUR
..
我下载了CUDA 6.0 RC,并在我的应用程序中使用cudaMalLocManaged测试了新的统一内存。但我发现这个内核变慢了。 使用cudaMalloc后跟cudaMemcpy比使用cudaMallocManaged(~0.63)更快(~0.56)。这是预期的吗? 其中一位website声称cudaMallocManged是为了“更快地对Cuda内核进行原型设计”,所以我在想,从
..
我正在开发一个CUDA内核来计算图像的直方图(NVIDIA GTX 480)。我注意到,使用Cuda剖析器发现了82.2%的分支分歧。分析器将以下函数指示为分歧的来源,该函数位于名为DEVICE_Functions.h的文件中(尤其是包含RETURN语句的那一行)。 static __forceinline__ unsigned int __uAtomicAdd(unsigned int *
..
我正在使用gnumpy通过在GPU上进行训练神经网络来加速一些计算。 我得到了想要的加速比,但我有点担心Numpy(CPU)和gnupy(GPU)结果的差异。 我有以下测试脚本来说明问题: import gnumpy as gpu import numpy as np n = 400 a = np.random.uniform(low=0., high=1., size=(n, n
..
我的公司销售依赖于NVIDIA CUDA工具包的商业Linux应用程序。然而,我们的许多客户在他们的计算机上没有超级用户访问权限,并且无法自己安装CUDA,因此我们希望将CUDA静态库与我们的应用程序捆绑在一起。 我们的法律部门表示,我们需要实际将库的内容包含在我们应用程序的一个现有静态库中,而不是仅将CUDA静态库作为单独的文件提供。我可以手动创建这样一个合并库,它工作得很好: li
..
我需要计算256个元素的Float64信号的傅里叶变换。要求是这样的,我需要从cuda.jitt节内部调用这些FFT,并且必须在25usec内完成。唉,cuda.jit编译的函数不允许调用外部库=>我自己写的。唉,我的单核代码仍然太慢了(在Quadro P4000上大约250usec)。有没有更好的办法? 我创建了一个单核FFT函数,它可以提供正确的结果,但速度却慢了10倍。我不明白如何利用
..
我尝试使用CUDA驱动程序API运行.cl内核生成的PTX汇编代码。我采取的步骤如下(标准OpenCL过程): 1)加载.cl内核 2)JIT编译 3)获取编译后的PTX代码并保存。 到目前为止一切顺利。 我注意到PTX ASSEMBLY内部有一些特殊的寄存器,%envreg3,%envreg6等。问题是当我尝试使用驱动程序API执行代码时,这些寄存器没有设置(根据p
..
我想通过支持CUDA的MPI在不同的CUDA设备之间交换数据,如this article中所述。根据我的理解,下面的代码应该可以完成这项工作: #include int main( int argc, char *argv[] ) { int rank; float *ptr = NULL; const size_t elements = 32; MPI_S
..
我有一个Numba Cuda内核,在RTX 3090上可以启动多达640个线程和64个块。 如果我尝试使用641个线程,则失败并显示: Traceback (most recent call last): File "/home/stark/Work/mmr6/mmr/algos/company_analysis/_analysis_gpu_backup.py", line 905
..
我正在研究cudaDecodeD3D9 sample以了解CUDA是如何工作的,在编译时它会从.cu文件生成一个.ptx文件。据我目前所知,这个.ptx文件是一个中间表示,它将针对任何特定的GPU进行实时编译。该示例使用类cudaModuleMgr通过cuModuleLoadDataEx加载此文件。 .ptx文件是文本格式,我可以看到它的顶部是我的机器上的一堆硬编码路径,包括我的用户文件夹,
..
在最新的NVIDIA微体系结构中,出现了一个新的(?)taxonomyWARP停滞原因/WARP调度器状态。 此分类中的两个项目是: 短记分板-MIO队列操作的记分板依赖项。 长记分板-L1TEX操作的记分板依赖项。 我认为,其中使用";记分板";表示无序执行数据依赖关系跟踪(例如,请参阅here)。 我的问题: 形容词“短”或“长”描述什么?是一块
..
我使用的是带有NVIDIA GeForce GPU的远程工作站,编译并执行后,当我尝试评测时,屏幕上会显示此信息 这是我运行nvidia-smi时的输出 #include #include #include __global__ void matrixInit(double *matrix, int width, int hei
..
我正在尝试使用推力库的PARTITION_COPY函数对阵列进行分区。 我看过传递指针的示例,但我需要知道每个分区中有多少个元素。 我尝试的是将设备向量作为OutputIterator参数传递,如下所示: #include #include #include
..