- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个需要大量数据的模拟程序。我将数据加载到 GPU 中进行计算,数据中存在很多依赖性。由于 1 个 GPU 不足以处理数据,所以我将其升级为 2 个 GPU。但限制是,如果我需要其他 GPU 上的数据,必须先有一个副本到主机。
那么,如果我使用 GPU Direct P2P,PCI 总线是否会处理 GPU 之间那么多的来回通信?不会导致死锁吗?
我是新手,所以需要一些帮助和见解。
最佳答案
PCI Express 在两个方向上都是全速的。不应出现“死锁”,就像您在需要握手才能继续进行的同步 MPI 通信中可能遇到的那样。
正如 Robert 在评论中提到的“通过 PCIE 总线访问数据比从板载内存访问数据要慢得多”。但是,它应该比将数据从 GPU1 传输到 CPU,然后从 CPU 传输到 GPU2 快得多,因为您不必复制两次。
您应该尽量减少 GPU 到 GPU 的传输量,特别是如果您必须在同步数据之前同步数据(在某些算法中可能会发生)。但是,您也可以尝试在传输数据时进行一些并发执行。您可以查看 CUDA C 指南的对等内存部分。 http://docs.nvidia.com/cuda/cuda-c-programming-guide/#peer-to-peer-memory-copy
关于cuda - GPUDirect Peer 2 peer using PCIe bus : If I need to access too much data on other GPU, 不会导致死锁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27832273/
我正在编写一个支持多种设备的 Linux 设备驱动程序。我有一个 x8 PCIe 卡,上面有 4 个这样的设备。每个都通过一个 PCIe 交换机运行并获得 2 个 PCIe channel 。有没有办
有谁知道放在 PCIe 卡上的 COM,它有一些闪存、一些 RAM、JTAG 支持(或某种调试支持)、一些输入端口,如 USB,也许支持一些输出,如通过 VGA 或 LVDS,只是像这个板子:http
我是 PCIe 的新手,所以这可能是个愚蠢的问题。这似乎是询问有关 PCIe 接口(interface)的相当基本的信息,但我找不到答案,所以我猜我遗漏了一些使答案显而易见的信息。 我有一个系统,其中
为了实现NVMe SSD和其他PCIe设备之间的p2p通信,我想知道是否需要对Linux内核和NVMe驱动程序进行一些修改,或者其他什么?我应该做哪些修改?我已经搜索了几天,但是这方面的信息很少,我需
我一直在阅读令人恐惧的 PCIe 规范,但仍然无法对以下问题得到任何解决方案。 PCIe 是否允许将巨大(例如 16GB)64 位不可预取内存空间映射到 4GB 边界以上?或者它们仍然与 32 位时代
两个独立的设备(端点)可以在没有根复合体参与 PCIe 的情况下相互通信(根据 PCIe 规范是的,但是如何)? 在内存和 IO 事务的情况下,一个端点如何知道另一个端点的地址? 交换机如何在两个下游
对于另一个问题,我使用了与附件相同的情节。可以看到峰值带宽超过5.5GB/s。我正在使用来自代码示例的 NVidia 带宽测试程序来查找主机到设备之间的带宽,反之亦然。 该系统由两个插槽上的 12 个
过去几天开始,我尝试开发主机和端点之间的数据传输,但我无法实现该实现。我尝试了如何使用一些调用读取配置空间(pci_read_long),已成功读取vendor_id、device_id...等数据。
我正在 Linux 中为在 Xilinx UltrascaleMPSoC FPGA 部分上实现的 PCIe 端点编写一个设备驱动程序。我已经正确实现了删除功能。我使用适配器将设备连接到电脑,打开设备,
我正在为 openwrt 开发一个 PCIE 设备驱动程序,在尝试访问定时器中断中的 io 内存时遇到了数据总线错误,我在 last question 中提到过.经过大量研究,我想我可能找到了原因,但
我正在尝试使用流式 DMA 映射将 DMA 添加到我的 PCIe Linux 驱动程序。 FPGA(端点)为 DMA 配置了 BAR4,在我的设置函数中我做了(按顺序): pci_set_master
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在这里发现了一些关于它的话题,但没有一个能解释我遇到的问题。我只是想通过将其映射到 Linux 中的用户内存空间来访问 PCIe 设备的内部状态寄存器。这是我的系统配置: # uname -a Li
例如,当我使用带有 CUDA C/C++ 和 GPUDirect 2.0 P2P 的多 GPU 系统时,我使用嵌套的 PCI-Express 开关,如图所示,那么我必须知道任意两个 GPU 之间有多少
我正在开发一个在启动时将大量数据推送到显卡的流媒体应用程序。在推送数据时,CPU 几乎没有做任何事情,它以接近零的使用率闲置。 我想监控哪些机器在推送初始数据时遇到困难,哪些机器可以应付,以便我可以为
我写了一个简单的 PCIe 驱动程序,我想测试它是否有效。例如,如果也可以写入和读取从设备使用的内存。 我该怎么做? 哪些东西也应该被证明? 最佳答案 例如,您需要找到设备的 sysfs 条目 /sy
我在我的 intel i7 PC 上使用 intel i210 1G NIC 卡,我想知道这个 NIC 如何与主机通信而无需开箱即用的任何配置。 什么 NIC 作为 PCIe 设备输出到主机,主机 p
我希望能够将视频从连接到我的计算机的摄像头直接流式传输到我通过 PCIE 连接到我的计算机的 FPGA。 我不介意使用 javascript 或 C# 等高级语言来执行此操作(因为这些是我知道的具有视
我已经编写了一个 PCIe 设备驱动程序,但读/写功能无法正常工作。该设备有 3 个内存区域,分别从 0x10800000、0x0c000000 和 0x80000000 开始。仅出于测试目的,我在驱
我正在为 Linux 编写一个 PCIe 驱动程序,目前没有 DMA,并且需要知道一旦从用户空间启用它后如何读取和写入 PCIe 设备。 在驱动程序中,我在 probe() 中执行基础操作: pci_
我是一名优秀的程序员,十分优秀!