- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我说的是具有计算能力 3.5 (GK110) 的 nvidia GPU:
在每个 GPU 核心上,最多有 64 个事件 warp,硬件如何处理 warp 退役?来自不同网格 block 甚至流的变形能否在 GPU 的单个核心上同时工作(我所说的核心是指多处理器,因为它们本质上是多核 GPU 的核心)?
核心能否从一个流中快速退出完成的 warp,并将其他流中的其他 warp 加载到同一核心?
我问这个的原因是因为要做出艰难的决定:
(1) 我可以编写代码来启动来自不同流的多个线程,大约 2/3 的启动线程束基本上什么都不做,并快速退休。
或者:
(2) 我可以编写代码来准确启动所需数量的线程,但每个线程都将包含非常繁重的索引计算(通过求解多个索引方程,计算正确索引所涉及的计算量将只是与 (1) 中的实际计算一样多(如果不是更多的话))。
因此,如果 GK110 可以快速退出空 warp 并用新的 warp 替换它们,那么 (1) 将优于 (2),因为它可以完全避免不必要的索引计算。
到目前为止,琐碎的案例测试表明这两个工作大致相同,但我不确定 (1) 在非琐碎的案例中是否会更好。
最佳答案
On each GPU core, there are at most 64 active warps. How does the hardware handle warp retirements? Can warps from different grid blocks or even streams work concurrently on a single core of a GPU (by core I mean multiprocessor, since they are estentially the core of a multi-core GPU)?
是的,来自不同线程 block 的 warp 可以共存并准备好在单个 SM 上执行。这些不同的线程 block 可能来自相同的内核或不同的内核,来自不同的流。描述了来自不同内核并发执行的线程 block here .
Can a core retire finished warps quickly from a stream and load other warps from maybe other stream to the same core?
是的。在分配 warp 之前,首先由 threadblock 处理工作分工。首先在 SM 上安排一个线程 block ,然后选择要执行的 warp 的过程发生。只要 SM 上有可用的线程 block 插槽(并且没有其他调度限制,例如共享内存或寄存器使用),来自任何可用内核的新线程 block 都可以在 cc 3.5 SM 上调度。
关于c - 有人知道 nvidia 产品(开普勒)中的 warp 退役机制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15330031/
我正在尝试在 Google Colab 上运行 stylegan2,但在我的 Drive 上运行所有文件,并避免使用 !git clone 从 github of stylegan2 。 这是我在特定
我需要升级我的 nvidia 驱动程序,以便尝试运行 NVIDIA-LInux-x86_64.run文件 但是,我看到以下消息 ERROR: An NVIDIA kernel module 'nvid
我经历过Cuda programming guide但仍然不清楚 cuda 内核在 GPU 上的什么位置?换句话说,它驻留在哪个内存段? 另外,我怎么知道我的设备支持的最大内核大小是多少?最大内核大小
我想在基于官方nvidia/cuda的容器中运行带有cuvid硬件加速解码的ffmpeg图片。 Ffmpeg 无法找到 libnvcuvid.so,尽管有所有必需的 cuda 库。ldconfig -
当我运行命令 nvidia-smi ,我得到以下两个按总线 ID 排序的 GPU: For GPU 0, 00000000:0A:00.0 For GPU 1, 00000000:41:00.0 但是
我正在使用 Ubuntu 14.04 LTS 运行 AWS EC2 g2.2xlarge 实例。我想在训练 TensorFlow 模型时观察 GPU 利用率。我在尝试运行“nvidia-smi”时遇到
我尝试在安装 docker-ce 后安装 nvidia-docker。我关注的是:https://github.com/NVIDIA/nvidia-docker安装 nvidia-docker。看来已
我一直认为 Hyper-Q 技术不过是 GPU 中的流。后来我发现我错了(是吗?)。所以我读了一些关于 Hyper-Q 的书,却更加困惑了。 我正在浏览一篇文章,它有以下两个陈述: A. Hyper-
我刚刚在安装了两个 K20m GPU 的服务器中运行了 simpleMultiGPU。然后运行 nvidia-smi 命令来显示 GPU 的状态。结果如下: 问题如下: GPU 内存使用情况似乎不
NVIDIA-SMI 抛出此错误: NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make
如何使用 Vulkan 来利用 Nvidia 的张量核心(在计算着色器中?!)? Nvidia 有这篇文章 Programming Tensor Cores in CUDA 9 ,但这显然是针对 CU
我在类的一个项目中使用 Chapel,我正在尝试使用我的两个 Nvidia Jetson nano 板进行多语言环境执行。按照本教程 https://chapel-lang.org/docs/usin
我得到nvidia-smi得到Memory-Usage是这样的 $nvidia-smi -i 0,1 Wed Mar 4 16:20:07 2020 +-----------------
我得到nvidia-smi得到Memory-Usage是这样的 $nvidia-smi -i 0,1 Wed Mar 4 16:20:07 2020 +-----------------
有没有区别: nvidia-docker 运行 和 docker run --runtime=nvidia ? 在 official docs他们使用后者,但我在其他在线教程中看到过前者。 最佳答案
我有一个用 C 编写的代码(使用 opencl 规范)来列出所有可用的设备。我的 PC 安装了 AMD FirePro 和 Nvidia 的 Tesla 显卡。我先安装了AMD-APP-SDK-v3.
我读到可以使用内核启动来同步不同的 block ,即,如果我希望所有 block 在进行操作 2 之前完成操作 1,我应该将操作 1 放在一个内核中,将操作 2 放在另一个内核中。这样,我可以实现 b
我目前正在尝试使用函数 NvAPI_Stereo_SetDriverMode 将 nvapi 设置为在直接模式下工作。 根据 Nvidia nvapi site (在手册中),如果你想做一个 dire
我对nvidia GPU的任务调度有些疑惑。 (1)如果一个 block (CTA)中的线程束已经完成,但仍有其他线程在运行,这个线程会等待其他线程完成吗?换句话说,当所有线程都完成时, block
有人在Nvidia Tegra X1上使用了tensorflow吗? 我发现一些资料表明TK1上可能存在这种情况,或者TX1上存在严重的黑客入侵/错误,但尚无确定的配方。 http://cudamus
我是一名优秀的程序员,十分优秀!