首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么使用少于最大线程数会让我的内核运行得更快?

为什么使用少于最大线程数会让我的内核运行得更快?
EN

Stack Overflow用户
提问于 2012-10-28 06:10:10
回答 2查看 480关注 0票数 3

我编写了一个简单的CUDA内核来对大小为2^18的两个列向量执行SAXPY。

我发现我的图形处理器,一个特斯拉C2070,可以运行每个块最多1024个线程。

然而,我发现运行块大小为X= 512和X= 128的内核比运行块大小为X= 1024的内核快。

为什么会这样呢?如果我的块大小小于1024,我不是在浪费线程吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-28 06:41:03

像SAXPY这样的1级BLAS函数是内存带宽有限的。操作

代码语言:javascript
运行
AI代码解释
复制
y <- alpha * x + y

仅执行单个FMAD,但需要从全局内存进行两次加载和一次存储。您的C2070拥有大约37.5Gfloat/s的全局内存带宽和500GFMAD/s的单精度算术吞吐量。因此,性能是由内存控制器决定的,而不是ALU。通常,在内存带宽有限的内核中减少每个块的线程数可以提高性能,因为它减少了对内存、控制器和缓存资源的争用,并提高了带宽利用率。

这可能就是您的SAXPY内核正在发生的事情。你应该能够通过基准测试找到最优的块大小,但我的经验是,在像你的C2070这样的费米设备上,它将是每个块128-384个线程。

票数 3
EN

Stack Overflow用户

发布于 2012-10-28 13:32:59

对于使用共享内存缓存读/写/数据共享的代码,较小的块大小可能会导致每个线程使用较大的共享内存块,这反过来会增加良好内存访问模式(更多合并)的机会。

我同意talonmies的观点,根据我的经验,每个块128-192个线程几乎总是能为我的代码带来最好的性能,即使可以启动更多的线程。

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

https://stackoverflow.com/questions/13106801

复制
相关文章
vb.net ExcelHelper类(三)
Public Sub InsertRows(rowIndex As Integer, count As Integer)
办公魔盒
2019/07/22
1K0
vb.net ExcelHelper类(一)
''' 暂时不提供操作Excel对象样式方法,样式可以在Excel模板中设置好
办公魔盒
2019/07/22
1.3K0
vb.net ExcelHelper类(二)
''' <param name="sheetIndex">工作表索引</param>
办公魔盒
2019/07/22
1.2K0
Lambda序列化支持debugger
代码仓库:https://gitee.com/VampireAchao/stream-query
阿超
2022/08/20
3230
Lambda序列化支持debugger
VB.NET 对ini配置文件操作类
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。
办公魔盒
2019/07/22
1.5K0
VB.NET 对ini配置文件操作类
Dubbo 支持哪些序列化协议?
dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
李红
2019/05/29
1.6K0
C#序列化反序列化帮助类
//转载:http://hi.baidu.com/fxh19860822/blog/item/df35230b3ded441495ca6bd5.html 在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化 /// <summary> /// 提供序列化和反序列化对象的相关静态方法。 /// </summary> public class SerializerHelper { ///
跟着阿笨一起玩NET
2018/09/18
1.6K0
Dubbo支持的通信、序列化协议
默认就是走dubbo协议的,单一长连接,NIO异步通信,基于hessian作为序列化协议。
JavaEdge
2022/11/30
4480
Dubbo支持的通信、序列化协议
python 类支持with调用
为了让一个对象兼容 with 语句,你需要实现 __enter__() 和 __exit__() 方法。 例如,考虑如下的一个类,它能为我们创建一个网络连接:
用户5760343
2019/12/13
9620
dubbo 支持哪些通信协议?支持哪些序列化协议?
序列化,就是把数据结构或者是一些对象,转换为二进制串的过程,而反序列化是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
IT技术小咖
2019/06/26
1.5K0
dubbo 支持哪些通信协议?支持哪些序列化协议?
模型类序列化器ModelSerializer
如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。
小闫同学啊
2019/07/18
6280
java序列化反序列化工具类SerializeUtils.java
Redis不支持直接将Java对象存储到数据库中,所以需要将java对象进行序列化得到字节数组,然后将字节数组存入到redis中,需要数据的时候就从redis数据库中取出字节数组,再经过反序列化将自己数组转换成对象使用(jdk序列化性能比谷歌公司的Protobuf序列化性能要差一些,而且序列化后的字节长度要也会长一些,所以推荐使用Protobuf.
IT工作者
2022/05/06
6580
JSON类库Jackson优雅序列化Java枚举类
在Java开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码。但是在将这些枚举的意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson类库序列化对象为JSON,今天就来讲一个关于使用Jackson序列化枚举的通用性技巧。
码农小胖哥
2020/06/28
5.4K0
[PHP]实体类基类和序列化__sleep问题
1.构造函数传参 2.__get和__set实现,当调用不存在的属性的时候,可以取值和赋值到data属性数组 3.__sleep实现,当序列化对象的时候,只序列化data属性数组和类内初始化定义的字段 4.__isset实现,可以判断属性是否存在,通过判断data属性数组 5.toArray方法实现,返回data属性数组 6.记录了构造初始化后,动态添加的属性字段
唯一Chat
2019/09/10
5150
StreamingPro 支持类SQL DSL
受spark sql在喜马拉雅的使用之xql 这篇文章影响,我发现类似下面这种语法是极好的:
用户2936994
2018/08/27
5030
VB.NET 对SQLite轻型数据库操作的SQLiteHelp类
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MysqlPostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
办公魔盒
2019/07/22
3.4K0
VB.NET 对SQLite轻型数据库操作的SQLiteHelp类
制作最清晰缩略图的完整类(VB.NET版)
Public Class ClassUpPic    Private vPicFile As Sys
Java架构师必看
2021/03/22
4850
浅谈VB.NET[通俗易懂]
前一段时间好多同学都分享了如何高效看视频的学习方法,第一条就是在看视频之前,对视频中所讲的内容有一个大致的了解。看VB.NET 视频,首先我们就要了解一下VB.NET是什么,它是用来干什么的。
全栈程序员站长
2022/08/09
2K0
浅谈VB.NET[通俗易懂]
Kafka 中使用 Avro 序列化框架(一):使用传统的 avro API 自定义序列化类和反序列化类
关于 avro 的 maven 工程的搭建以及 avro 的入门知识,可以参考: Apache Avro 入门
CoderJed
2018/09/13
2.6K0
Kafka 中使用 Avro 序列化框架(一):使用传统的 avro API 自定义序列化类和反序列化类
Dubbo 支持的几个主流序列化框架评测
今天要聊的技术是序列化,这不是我第一次写序列化相关的文章了,今天动笔之前,我还特地去博客翻了下我博客早期的一篇序列化文章(如下图),竟然都过去 4 年了。
kirito-moe
2021/09/08
1.8K0
Dubbo 支持的几个主流序列化框架评测

相似问题

vb.net序列化类

23

通过序列化支持的Singleton类

11

VB.Net创建要序列化的类

10

将VB.Net Xml反序列化为类

31

VB.net -序列化具有事件的类

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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