Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >库达:可以使用所有48 It的片上内存作为共享内存吗?

库达:可以使用所有48 It的片上内存作为共享内存吗?
EN

Stack Overflow用户
提问于 2012-09-13 00:23:18
回答 3查看 1.7K关注 0票数 4

我正在开发一个CUDA应用程序GTX 580与CUDA工具包4.0和VisualStudio2010Professional在Windows 7 64位SP1上。我的程序比典型的CUDA程序占用更多的内存,我正试图为每个CUDA块分配尽可能多的共享内存。但是,每当我试图为每个块使用超过32K的共享内存时,程序就会崩溃。

通过阅读官方的CUDA文档,我了解到在计算能力为2.0或更高的CUDA设备上,每个SM都有48 or的片上内存,并且在L1缓存和共享内存之间分离:

相同的片上内存用于L1和共享内存,其中有多少用于L1而共享内存对于每个内核调用都是可配置的(第F.4.1节) Guide.pdf

这让我怀疑,当我的程序运行时,只有32 as的单芯片内存被分配为共享内存。因此,我的问题是:是否可以使用所有48 on的片上内存作为共享内存?

我试过了我能想到的一切。我为nvcc指定了选项--ptxas--dlcm=cg=“-v -dlcm=cg”,并且在我的程序中调用了cudaDeviceSetCacheConfig()和cudaFuncSetCacheConfig(),但它们都没有解决这个问题。我甚至确保没有寄存器溢出,也没有意外地使用本地内存:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1>      24 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
1>  ptxas info    : Used 63 registers, 40000+0 bytes smem, 52 bytes cmem[0], 2540 bytes cmem[2], 8 bytes cmem[14], 72 bytes cmem[16]

虽然我可以使用32 of的共享内存,这已经给我带来了巨大的性能提升,但我更愿意充分利用所有的快死内存。任何帮助都是非常感谢的。

更新:当程序崩溃时,我正在启动640个线程。512给了我比256更好的性能,所以我试图进一步增加线程的数量。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-13 01:03:10

您的问题与共享内存配置无关,而是与正在启动的线程数量有关。

每个线程使用63个寄存器,并启动640个线程,总共提供了40320个寄存器。设备的注册总数为32K,因此资源不足。

关于芯片上的内存,Tom的回答很好地解释了,正如他评论的那样,检查API调用中的错误将有助于您处理将来的错误。

票数 6
EN

Stack Overflow用户

发布于 2012-09-13 00:48:37

计算能力2.0及更高的设备每SM有64 SM的片上内存。这可以配置为16 on的L1和48 on的涂片或48 on的L1和16 on的涂片(在计算能力3.x上也是32/32 )。

你的程序崩溃还有另一个原因。您是否检查了所有API调用中的错误?你试过库达-麦考克了吗?

如果您使用过多的共享内存,那么当您启动内核时会出现一个错误,说明资源不足。

票数 3
EN

Stack Overflow用户

发布于 2012-09-20 06:53:41

另外,将参数从主机传递到GPU使用共享内存(最多256个字节),因此您将永远得不到实际的48 so。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12402191

复制
相关文章
MySQL日期类型选择
MySQL提供的常用日期类型有DATE,TIME,DATETIME,TIMESTAMP,
秋白
2019/02/21
3.1K0
MySQL索引选择规划
通过explain的执行结果我们可以看出,上面的SQL语句并没有走我们的索引a,而是直接使用了全表扫描。
shysh95
2022/02/16
1K0
MySQL索引选择规划
Mysql分支选择:Percona Or MariaDB
本文将对MySQL官方版本以及最流行的两个分支:MariaDB 和 Percona Server进行对比介绍。笔者曾经遇到过一些同学,在可能在一个公司待了可能几年了,问他公司用的数据库是什么,他只能回答出,使用的是Mysql。当问到只是用的官方版本,或是哪一个分支时,他就一无所知了。本文将介绍这些分支产生的原因,以及在实际生产中,应该如何进行选择。并不会进行过多细节介绍,算是一个小科普。
田守枝
2019/05/21
9.8K0
Mysql分支选择:Percona Or MariaDB
MySQL时间函数的选择
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bisal
2019/10/22
2.3K0
MySQL 选择数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。 ---- 从命令提示窗口中选择MySQL数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库。你可以使用SQL命令来选择指定的数据库。 实例 以下实例选取了数据库 test: [root@host]# mysql -u root -p Enter password:****** mysql> use test; Database changed mysql> 执行以上命令后,你就已经成功选择了 tes
福贵
2018/04/12
2.1K0
MySQL 选择数据库
如何为 MySQL 选择 CPU?
MySQL 服务器性能受制于整个系统最薄弱的环节,承载它的操作系统和硬件往往是限制因素。磁盘大小、可用内存和 CPU 资源、网络,以及所有连接它们的组件,都会限制系统的最终容量。
博文视点Broadview
2020/11/30
1.2K0
如何为 MySQL 选择 CPU?
mysql存储过程---选择结构
关键字DECLARE,下列语句声明变量名为num的int类型的变量长度为10,[ default 0 代表默认值为0,可以不写]。
用户5899361
2020/12/07
9200
MySQL 选择数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。
用户1685462
2021/07/16
1.6K0
MySQL 选择数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库。
用户6884826
2021/07/07
1.6K0
基础 | 前端图片选择问题
作者|observernote 原文|http://www.cnblogs.com/observernotes/p/4806218.html 图片问题的一些总结 前言: 之前个人对于图片的问题,一直还是显得不是很重视。但其实对于互联网来说,可能图片的内容已经占据了整个互联网的大半部分,因此我们很大一部分流量的消耗,都是用在了图片上面,因此,对于图片有一些认识肯定是现在所必须的。所以趁今天这个不太忙的机会,打算对于图片的问题做一个简单地总结,也算是对之前没掌握到的东西的一个学习与备忘过程。 常见的图片格式
用户1097444
2022/06/29
6120
基础 | 前端图片选择问题
mySql问题
SELECT DATA_LIST.* ,CAST((@rowNum:=@rowNum+1) AS CHAR) AS ROWNO FROM (
斯文的程序
2019/11/07
8030
mySql问题
mysql问题
在使用 MySQL 8.0 时重启应用后提示 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
用户10325771
2023/03/01
4290
mysql数据类型的选择
如果不需要小数部分,就是用整数来保存数据;如果需要小数部分,就是用浮点数。对于浮点数据列,存入的数值会对该列定义的小数位进行四舍五入。 浮点类型包裹FLOAT和DOUBLE类型,精度要求较高时,使用DOUBLE类型。
别团等shy哥发育
2023/02/25
1K0
MySQL如何选择合适的索引
小强前几篇文章介绍了mysql的索引原理以及sql优化的一些小技巧。mysql底层的算法选择哪种索引,有时候会和我们想象的不一样,大家可以继续往下看。
程序员小强
2019/09/06
4.1K0
MySQL如何选择合适的索引
关于Uber选择MySQL的思考
在数据库圈子,大家都知道2016年 Uber 干出来一件大事件,把 PostgreSQL 切换到了 MySQL,当时社区里一阵喧哗。这里想带着大家思考一下选择的背后。
wubx
2019/02/27
7640
关于Uber选择MySQL的思考
MongoDB 与 MySQL,你选择谁?
过去几年,使用NoSQL数据库的网站和应用数量激增。 MongoDB无处不在。 现代网络如何偏离传统的基于SQL的数据库确实令人着迷。 MongoDB和其他NoSQL数据库在存储和检索数据方面有一种新方法。 那么让我们来看看MongoDB与MySQL不同的一些关键因素。
星哥玩云
2022/08/17
2.2K0
MongoDB 与 MySQL,你选择谁?
【MySQL高级】Mysql锁问题
在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。
陶然同学
2023/02/24
1.6K0
【MySQL高级】Mysql锁问题
mysql—如何为innodb选择主键
因为在innodb表中,每一个非主键索引的叶子节点上都会存储主键列的信息, 所以如果主键索引太大,会导致其他非主键索引页变大, 降低索引的查询效率
全栈程序员站长
2021/04/07
4.3K0
mysql 事务隔离级别如何选择
数据丢失,两个事务同时进行,一个成功一个失败,造成数据回滚,或者两个都成功造成数据覆盖
海涛
2020/01/15
1.5K0
MYSQL死锁问题
如果insert或update用到了同样的索引也会造成死锁。 比如 update table_a set name = ‘test1’ where id = 300; //用到了table_a的id主键索引 insert into table_b (a_id,`name`) (select id,name from table_a where id >=200) ON DUPLICATE KEY UPDATE a_id = values(a_id)//同样用到了table_a的id主键 所以会导致
苦咖啡
2018/04/28
1.6K0

相似问题

关于更改多端口VLAN分配的问题

10

路由器端口分配如何不耗尽

20

基于交换机端口分配IP地址

30

为不同的VLAN分配一个开关端口

20

如何将多个VLANS分配给一个端口?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文