- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 cudamallocmanaged 的疑问是,如果我 malloc N 个数字,在 GPU 完成对这些数字的操作(比方说扫描操作)后,我只需要数组中的最后一个数字,并且只访问主机中的这个数字. cudamallocmanaged 只会复制这个数字吗?
我做了一个测试,我的答案是否定的。所以我认为在这种情况下 cudamalloc/free/copy 比 cudamallocmanaged 更快。如果我错了,请纠正我。
那么接下来的问题是:知道何时以及来回复制多少是如何工作的?
最佳答案
您问题的答案通常是肯定的,以页面(通常是 4K)为基础。对于 CPU->GPU 拷贝,驱动程序通过跟踪脏位来延迟复制 CPU 页面。内核启动后,托管内存被标记为非驻留内存,因此 CPU 访问将出错。然后在 CPU/GPU 同步操作之后,它保持非驻留状态,驱动程序通过从设备内存中复制访问的页面来解决页面错误。
这是基于我去年某个时间所做的一项研究,因此此后可能有所变化。鉴于托管内存的语义,NVIDIA 有许多不同的实现选项,您可以预期它们会随着 NVIDIA 优化其代码而改变。
我以 500MB/s 的速度测量了托管内存的 block GPU->CPU 拷贝,比固定的 memcpy 慢 25 倍,因此随着 NVIDIA 弄清楚如何优化这些代码路径,预计会有变化。例如,如果他们在 GPU 端进行脏位跟踪,他们可以推测性地将 GPU 写入的页面复制回 CPU 内存。这将提供更高的带宽,但可能会导致从未访问过的多余数据拷贝。
关于c++ - cudamallocmanaged 是否足够聪明,不会复制不需要的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134132/
对于我的问题,我找不到更好的措辞。 在我的应用程序中的某个时刻,我设置了一些非常密集的动画。问题是,在高端设备上,动画运行流畅且赏心悦目。另一方面,我测试过的一台低端设备在制作动画时表现非常糟糕。 试
我正在修补 OTP 模块 ( yubico_pam ),并尝试访问管理员选择的控制标志(例如必需,足够, ETC)。 有什么想法吗?这是否可行(无需解析文件)? 最佳答案 无法在 API 中查询此信息
我有一些为 Linux 编写的 C 代码,依赖于套接字和 arpa/inet.h 以及 libusb.h,我想在 MinGW 下为 Windows 编译它。 (请注意,当前项目只有一个非常简单的 Ma
我是一名优秀的程序员,十分优秀!