gpt4 book ai didi

synchronization - CUDA 阻塞标志

转载 作者:行者123 更新时间:2023-12-04 06:58:57 24 4
gpt4 key购买 nike

创建 CUDA 事件时,您可以选择打开 cudaEventBlockingSync旗帜。但是 - 如果创建带有或不带有标志的事件之间的区别呢?我read the fine manual ;这对我来说没有意义。什么是“调用主机线程”,不使用标志时什么“阻塞”?

4.6.2.7 cudaError_t cudaEventSynchronize(cudaEvent_t event)

Blocks until the event has actually been recorded. ... Waiting for an event that was created with the cudaEventBlockingSync flag will cause the calling host thread to block until the event has actually been recorded.

最佳答案

cudaEventBlockingSync将定义主机将如何等待事件发生。

cudaEventBlockingSync是 SET CPU 可以放弃主机线程。即 CPU 将被传递一个不同的线程(可能是一个进程)。宿主线程稍后将重新获取 CPU。通过这种方式,主机线程不会独占所有CPU时间,可以让主机做其他工作。

cudaEventBlockingSync未设置 CPU 将忙等待,即 CPU 将进入检查事件循环。当这种情况发生时,CPU 只会旋转,寻找要发生的事件。这通常会导致 CPU 性能计指向 100%。通过这种方式,宿主线程独占了所有的 CPU 时间。

未设置 cudaEventBlockingSync导致从内核执行结束到控制权返回线程的最小延迟。您想使用哪种设置取决于内核在做什么。即事件发生需要多长时间,而 CPU 阻塞涉及多少调度开销。不设置此标志的代价是在等待事件发生时无法执行任何其他 CPU 工作(其他线程)。

关于synchronization - CUDA 阻塞标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com