cost 282 ms
CUDA 流(=队列)的容量是多少? - What's the capacity of a CUDA stream (=queue)?

CUDA 流是一个任务队列:内存拷贝、事件触发、事件等待、内核启动、回调...... 但是 - 这些队列没有无限容量。 事实上,根据经验,我发现这个限制并不是特别高,例如数千,而不是数百万。 我的问题: CUDA 流的大小/容量是否根据任何类型的排队项目固定,或者容量是否会根据您排队的 ...

获取 CUDA 上所有内核的总执行时间 stream - Getting total execution time of all kernels on a CUDA stream

我知道如何使用CUDA 事件对一个 CUDA kernel 的执行进行计时,这对于简单的情况非常有用。 但在现实世界中,一个算法通常由一系列内核组成(例如, CUB::DeviceRadixSort算法会启动许多内核来完成工作)。 如果您正在运行您的算法的系统上还有许多其他流和内核也在运行中,那么 ...

如果 cuEventRecord 获得默认流的句柄,它保证做什么? - What is cuEventRecord guaranteed to do if it gets the default-stream's handle?

假设我调用cuEventRecord(0, my_event_handle) 。 cuEventRecord()要求 stream 和事件属于同一上下文。 现在,可以将0解释为“在适当的上下文中的默认值 stream”——满足要求,这应该可以工作; 但也可以将其解释为“当前上下文中的默认 str ...

如何确保两个流中的两个内核同时发送到 GPU 运行? - How can I make sure two kernels in two streams are sent to the GPU at the same time to run?

我是 CUDA 的初学者。 我正在使用 NVIDIA Geforce GTX 1070 和 CUDA 工具包 11.3 和 ubuntu 18.04。 如下代码所示,我使用两个CPU线程将两个内核以两个流的形式发送到一个GPU。 我希望这两个内核同时发送到 GPU。 有没有办法做到这一点? 或者至 ...

将 __constant__ memory 与 MPI 和流一起使用 - Using __constant__ memory with MPI and streams

如果我有一个__constant__值 非阻塞流上的 MPI 等级可能会也可能不会初始化: 这是: 在内核中同时被多个 MPI 等级访问是否安全? 即,排名是否共享同一个val实例或 MPI 语义(它们都有一个私有副本)是否仍然有效? 如果以上是安全的,那么由多个 MPI rank 初始化是否安全? ...

CUDA C++ 重叠 SERIAL kernel 执行和数据传输 - CUDA C++ overlapping SERIAL kernel execution and data transfer

所以本指南在这里展示了重叠 kernel 执行和数据传输的一般方法。 但是,kernel 是串行的。 所以它必须处理 0->1000,然后 1000->2000,... 简而言之,在重叠数据传输时正确执行此 kernel 的顺序是: 复制[a->b] 必须在内核[a->b] ...

为什么 OpenCV 可以等待流式 CUDA 操作而不是异步进行? - Why could OpenCV wait for a stream-ed CUDA operation instead of proceeding asynchronously?

我正在尝试使用 OpenCV 和 CUDA 执行一些图像膨胀。 我使用不同的filter object 和不同的Mat调用两个对filter->apply(...)的调用,彼此接连,每次指定不同的 stream 使用。 从附加的 nvvp 分析信息中可以看出,它们确实在不同的流中执行,但它们 ...

跨并发内核执行的CUDA全局原子操作 - CUDA global atomic operations across concurrent kernel executions

我的CUDA应用程序执行整个卷的关联缩减。 本质上,每个线程都会计算原子添加到全局内存中同一输出缓冲区的重叠位置的值。 是否可以使用不同的输入参数和相同的输出缓冲区同时启动该内核? 换句话说,每个内核将共享相同的全局缓冲区并以原子方式对其进行写入。 所有内核都在同一GPU上运行。 ...

一个大内核与许多小内核和内存拷贝 (CUDA) 的并发 - Concurrency of one large kernel with many small kernels and memcopys (CUDA)

我正在开发一个多 GPU 加速流解算器。 目前我正在尝试实现通信隐藏。 这意味着,在交换数据时,GPU 计算网格中不参与通信的部分,并在通信完成后计算网格的其余部分。 我试图通过为长时间运行的内核 ( fluxKernel ) 使用一个流 ( computeStream ) 和用于不同通信阶段的一 ...

使用CUDA流和memCpyAsync错误的结果,添加cudaDeviceSynchronize成为正确的结果 - Wrong results using CUDA streams and memCpyAsync, become correct adding cudaDeviceSynchronize

我正在开发CUDA矩阵乘法,但是我做了一些修改以观察它们如何影响性能。 我正在尝试观察简单矩阵乘法内核的行为(并且正在测量GPU事件时间的变化)。 但是我正在两个特定的不同条件下对其进行测试: 我对A,B和C有一定数量的矩阵(例如matN ),然后我将A的一个矩阵(H2D)转移 ...

Nvidia Hyper Q和Nvidia Streams有什么区别? - What is the difference between Nvidia Hyper Q and Nvidia Streams?

我一直认为Hyper-Q技术不过是GPU中的流。 后来我发现我错了(是吗?)。 因此,我在阅读有关Hyper-Q的文章时感到困惑。 我正在阅读一篇文章,它包含以下两个陈述: 答:Hyper-Q是一种灵活的解决方案,它允许来自多个CUDA流,来自多个消息传递接口(MPI)进程甚至一个进 ...

为什么两个 CUDA Streams 中的操作不重叠? - Why operations in two CUDA Streams are not overlapping?

我的程序是一个管道,其中包含多个内核和 memcpy。 每个任务将通过具有不同输入数据的相同管道。 主机代码在处理任务时将首先选择一个通道,它是暂存器内存和 CUDA 对象的封装。 在最后一个阶段之后,我会记录一个事件然后去处理下一个任务。 主要的流水线逻辑如下。 问题在于不同流中的操作不会重叠。 ...

NVIDIA MPS(多进程服务器)和CUDA Streams之间有什么关系? - What is the relationship between NVIDIA MPS (Multi-Process Server) and CUDA Streams?

从官方的NVIDIA多进程服务器文档中瞥见 ,我不清楚它是如何与CUDA流交互的 。 这是一个例子: App 0:向逻辑流0发布内核; 应用1:向(自己的)逻辑流0发布内核。 在这种情况下, 1)MPS是否“如何”劫持这些CUDA呼叫? 对于每个应用程序,它是否完 ...


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