cost 490 ms
CUDA 动态并行是顺序计算 - CUDA dynamic parallelism is computing sequentially

我需要编写一个应用程序来根据其他矩阵计算一些矩阵。 通常,它对初始矩阵E的行的外积求和,并将其乘以从给定范围内的每个t的v和t计算的一些数字。 我是CUDA的新手,所以在实现中可能会有一些非常错误的想法。 所以,有我的代码和评论中的一些解释:#include <cupy/complex.cuh ...

在 CUDA 动态并行中执行父 kernel 的 rest 之前,如何等待子内核在父 kernel 中完成? - How do I wait for child kernels to finish in a parent kernel before executing the rest of the parent kernel in CUDA dynamic parallelism?

所以我需要 runParatron 子级在 for 循环的下一次迭代发生之前完全完成。 根据我得到的结果,我很确定这不会发生。 例如,我在 runParatron 中有一个打印语句,它在第一个“[”打印到 for 循环之外后执行。 我尝试运行 cudaDeviceSynchronize,但它不会编 ...

我可以使用动态文件路径将文件从 Sharepoint 复制到 Azure Blob 存储吗? - Can I copy files from Sharepoint to Azure Blob Storage using dynamic file path?

我正在构建一个管道以将文件从 Sharepoint 复制到工作中的 Azule Blob 存储。 在阅读了一些文档之后,我能够创建一个只复制某些文件的管道。 但是,我想通过使用动态文件路径在 Sharepoint 中指定源文件来自动化此管道。 换句话说,当我在 2022/07/14 运行管道时,我想 ...

CUDA 动态并行性:访问子 kernel 结果为全局 memory - CUDA dynamic parallelism: Access child kernel results in global memory

我目前正在 CUDA 中尝试我的第一个动态并行代码。它非常简单。 在父母 kernel 中,我正在做这样的事情: 假设我到目前为止做的事情是正确的,在aGlobalPayloads执行后访问 aGlobalPayloads 中的结果的最快方法是什么? (我尝试使用cudaMemcpy()将aGl ...

为什么我无法链接到使用动态并行和可分离编译的 CUDA 静态库? - Why can't I link to my CUDA static library that uses Dynamic Parallelism and Separable Compilation?

我正在尝试创建最基本的 CUDA 应用程序来演示动态并行、单独编译和链接、静态库中的 CUDA 内核,并且我正在尝试使用 CMake 生成 Visual Studio 解决方案。 我使用的是 CMake 3.21.3、CUDA 11.4 和 Visual Studio 2019 (16.11.5)。 ...

CUDA 父 kernel 可以启动比父线程更多的子 kernel 吗? - Can a CUDA parent kernel launch a child kernel with more threads than the parent?

我正在尝试学习如何使用 CUDA 动态并行。 我有一个简单的 CUDA kernel 创建一些工作,然后启动新内核来执行该工作。 假设我启动父 kernel 只有 1 个线程块,如下所示: 现在,在我的父 kernel 中,我创建了作品,然后启动了一个子内核,如下所示: 请注意,子 kernel ...

为什么不允许 cudaLaunchCooperativeKernel() 返回? - Why is cudaLaunchCooperativeKernel() returning not permitted?

所以我使用的是 GTX 1050,计算能力为 6.1,CUDA 11.0。 我需要在我的程序中使用网格同步,因此需要cudaLaunchCooperativeKernel() 。 我已经检查了我的设备查询,所以 GPU 确实支持协作组。 我无法执行以下 function 打电话后, 收到错误“不允 ...

Nvidia视觉分析器在内核启动后未显示cudaMalloc() - Nvidia visual profiler not showing cudaMalloc() after kernel launch

我正在尝试编写一个几乎完全在GPU上运行的程序(与主机的交互很少)。 initKernel是从主机启动的第一个内核。 我使用动态并行从initKernel启动后续内核,其中两个是thrust::sort(thrust::device,...) 。 在启动initKernel之前, ...

嵌套内核的同步深度 - Synchronizing depth of nested kernels

让我们在有父子内核的地方采用以下代码。 我们希望从所述父内核中以不同的流启动threadIdx.x子内核,以最大程度地提高并行吞吐量。 然后,我们等待带有cudaDeviceSynchronize()子级,因为父内核需要查看对global内存所做的更改。 现在让我们说我们还希望使用流启 ...

编译多个cuda文件(具有动态并行性)和MPI代码 - compile multiple cuda files (that have dynamic parallelism) and MPI code

我有一堆使用动态并行性的.cu文件(a.cu,b.cu,c.cu ..,e.cu,f.cu),还有一个主文件,该文件使用MPI从a调用函数.cu在多个节点上。 我正在尝试编写一个make文件来编译可执行文件,但我一直面临以下错误: 这是我的makefile: ...

GTX 980上的动态并行性ti:未知错误 - Dynamic Parallelism on GTX 980 ti: Unknown Error

我正在尝试GTX 980 ti卡上的动态并行性。 所有运行代码的尝试都会返回“未知错误”。 简单代码如下所示,带有编译选项。 我可以在depth=0处执行内核而没有任何问题。 第一次调用孩子时,会给出错误。 在查看其他问题之后包含了cudaDeviceSynchronize() , ...

CUDA动态并行,性能不佳 - CUDA Dynamic Parallelism, bad performance

使用CUDA Dynamic Parallelism时,我们遇到了性能问题。 目前,CDP的表现比传统方法慢至少3倍。 我们制作了最简单的可重现代码来显示这个问题,即将数组的所有元素的值增加+1。 即 这个简单示例的目的只是为了查看CDP是否可以像其他CDP一样执行,或者是否存在严 ...

如何将设备端命令队列与主机端队列同步? clFinish()和markerWithWaitList给出无效的队列错误 - How can I synchronize device-side command queues with host-side queues? clFinish() and markerWithWaitList gives invalid queue error

我正在使用OpenCL 2.0动态并行功能,并且每个工作项都通过单个工作项排队到另一个内核中。 当子内核的工作完成时间很高时,父内核会先完成,然后子代和内存一致性将不会保留,并且会返回损坏的数据(随机更新的数据项)。 由于clFinish()和clEnqueueMarkerWithWai ...

clEnqueueNDRangeKernel()使用动态并行性返回CL_OUT_OF_RESOURCES错误 - CL_OUT_OF_RESOURCES error is returned by clEnqueueNDRangeKernel() with dynamic parallelism

产生错误的内核代码: 我测试了以下代码,以确保OpenCL 2.0编译器正常工作。 扫描功能提供0、1、3、6作为输出,因此OpenCL 2.0还原功能可以正常工作。 动态并行是OpenCL 2.0的扩展吗? 如果删除enqueue_kernel命令,结果将等于预期值(省 ...

CUDA设备运行时api cudaMemsetAsync不起作用 - CUDA device runtime api cudaMemsetAsync doesn't work

我试图从内核调用cudaMemsetAsync (所谓的“动态并行”)。 但无论我使用什么值,它总是将内存设置为0。 这是我的测试代码: 如果我运行它,我得到这样的输出: 当我调用内存集时,我使用值0x7FFFFFFF 。 我期待非零数字,但它总是显示为零。 这是 ...

在动态并行CUDA中使用共享内存 - Using shared memory in Dynamic Parallelism CUDA

问题1:如果共享内存仅由子内核使用,我是否必须指定要在父内核启动时分配的动态共享内存的数量。 问题2:以下是我的子内核和父内核 父核 子内核 在这里,单独使用子内核可以正常工作。 但是,当它从另一个内核启动时,在父内核通过cudaDeviceSynchronize( ...

哪些因素会影响动态并行内核启动的开销? - What factors effect the overhead of dynamic parallelism kernel launches?

当您在GPU上的主要内核中启动辅助内核时,会产生一些开销。 导致或影响此开销数量的因素有哪些? 例如,内核代码的大小,正在启动内核的SM的占用,内核参数的大小等。 为了这个问题,让我们包容,并将“开销”定义为以下时间间隔的总和: 开始:SM看到启动指令 结束:SM开始执行子内 ...

动态并行性-将共享内存的内容传递给生成的块? - Dynamic parallelism - passing contents of shared memory to spawned blocks?

虽然我已经写了一段时间的CUDA内核,但我还没有使用动态并行(DP)。 我遇到了我认为可能适合的任务; 但是,我希望能够使用DP的方式是: 如果block发现需要更多线程来完成工作,则会生成它们。 它向其产生的线程赋予“所知”-本质上是其共享内存的内容, 每个产生线程的块都在其自己的 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM