首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库达内存带宽计算

库达内存带宽计算
EN

Stack Overflow用户
提问于 2018-03-20 07:53:12
回答 1查看 1.7K关注 0票数 1

我有几个有关cuda编程和GPU体系结构的问题要问:

1.假定GPU的内存带宽为144 Gb/s,PCIe总线带宽为2.25GB/s,那么将一个100,000,000倍的数组传输到GPU需要多少毫秒?

2.考虑到GPU全局内存的大小为3Gb,您可以处理的最大数组大小是多少?如果你必须处理一个更长的数组,你怎么能改变你的程序来完成这个任务呢?

我不知道怎么算,谁能帮我,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-20 17:08:04

  1. PCIE总线将是这里的限制因素。只需将数据传输的总大小(以字节为单位)除以速度(以字节/秒为单位),即可获得持续时间(以秒为单位)。2.25GB/s看起来不像我所知道的PCIE的典型传输速度,但可能是您的系统上的情况。现代系统通常可以达到~6GB/s (用于PCIE Gen2 x16链接)或~11 6GB/s(用于PCIE Gen3 x16链接)。您可以使用bandwidthTest数据自动化系统示例代码测量您的传输速度(可能)。请注意,要在应用程序中获得峰值传输吞吐量,通常需要向/从固定分配传输(<-提示,单击和读取)。
  2. 如果一个GPU有3GB的内存总量,其中一些将被CUDA和其他系统管理费用所用。剩余的“免费”金额可以是使用实用工具或运行时API调用估计的。空闲内存大约是整个数据存储可能的“上限”。您实际可以分配的金额将小于此金额。如果确定或估计可以分配的数量,则将此数量(以字节为单位)除以要存储的数据元素的大小。例如,double数量占用8个字节的存储空间。可以使用C库sizeof()函数来发现这一点。将可用内存大小除以元素大小后,您将得到可以存储在该内存量中的元素总数。实际可行的数额将略低于估计数。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49378903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档