腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
CUDA
,
复制到
共享
内存
会
显著
增加
使用
的
寄存器
数量
、
我正在
使用
pycuda来解决一个偏微分方程系统。因此,我
的
目标是对每个线程进行一些本地计算,然后写入
共享
内存
数组。我是GPU计算
的
新手,但我所知道
的
关于手头
的
问题写在下面。这个问题与下面代码片段中注释掉
的
代码行有关。我知道
共享
内存
对于块中
的
线程间通信是理想
的
,并且我
的
共享
内存
工作正常,直到我尝试从一个局部变量写入它,我假设这个变
浏览 62
提问于2019-07-11
得票数 0
回答已采纳
3
回答
CUDA
:合并
的
全局
内存
访问是否比
共享
内存
更快?另外,分配一个大
的
共享
内存
数组
会
减慢程序
的
运行速度吗?
我没有发现在NVIDIA Tesla M2050上
共享
内存
的
速度有任何提高,每块
共享
内存
约为49K。实际上,如果我在
共享
内存
中分配一个大
的
char数组,它会减慢我
的
程序。例如使我
的
运行时间比程序只访问数据库
的
前100个字符,所以不需要额外
的
空间我不明
浏览 0
提问于2012-02-08
得票数 8
回答已采纳
3
回答
在
CUDA
中
增加
每个线程
的
寄存器
使用
量
、
、
、
通常,建议降低每个线程
的
寄存器
压力以
增加
warp占用率,从而通过warp级多线程(TLP)提供更大
的
机会来隐藏延迟。为了减少
寄存器
压力,可以
使用
更多
的
每个线程
的
本地
内存
或每个线程块
的
共享
内存
。然而,对于延迟关键型应用程序,其中有很少
的
计算和更频繁
的
内存
访问,这种方法实际上往往
会
降低性能。对于这种延迟关键型应用程
浏览 11
提问于2012-08-31
得票数 5
3
回答
库达:可以
使用
所有48 It
的
片上
内存
作为
共享
内存
吗?
、
、
、
我
的
程序比典型
的
CUDA
程序占用更多
的
内存
,我正试图为每个
CUDA
块分配尽可能多
的
共享
内存
。但是,每当我试图为每个块
使用
超过32K
的
共享
内存
时,程序就会崩溃。通过阅读官方
的
CUDA
文档,我了解到在计算能力为2.0或更高
的
CUDA
设备上,每个SM都有48 or
的
片上
内存
浏览 4
提问于2012-09-13
得票数 4
回答已采纳
5
回答
CUDA
确定每个块
的
线程,每个网格
的
块
、
、
、
我是
CUDA
范例
的
新手。我
的
问题是确定每个块
的
线程数,以及每个网格
的
块数。这里面有没有一些艺术和尝试
的
东西?我发现很多例子看起来都是任意选择
的
数字。我正在考虑一个问题,在这个问题中,我可以将任意大小
的
矩阵传递给乘法方法。因此,C
的
每个元素(如C=A* B)将由单个线程计算。在这种情况下,您如何确定线程/块、块/网格?
浏览 0
提问于2010-12-09
得票数 62
回答已采纳
2
回答
如果我在GPU内核中
使用
了许多局部变量,这些变量
会
驻留在全局
内存
中吗?
、
、
如果我在GPU内核中
使用
了很多变量,这些变量
会
驻留在全局
内存
中吗?因此读取和写入局部变量将需要访问全局
内存
?谢谢,山姆
浏览 3
提问于2013-01-17
得票数 2
1
回答
使用
32位而不是64位来减少
寄存器
的
数量
我正在
使用
GTX土卫六计算3.5。在Windows 8 64位和
CUDA
5 64位。由于我
的
全局
内存
使用
量不超过3GB,而且我
的
所有变量都
使用
32位或更低
的
内存
,我想知道
使用
32位内核是否
会
减少
寄存器
使用
的
数量
,因为现在
的
指针将是u32。64位指针占用两个
寄存器
吗? 有人试图通过将内核编
浏览 3
提问于2013-06-12
得票数 2
回答已采纳
1
回答
为什么
CUDA
会
四舍五入线程
使用
的
寄存器
数量
?
、
我正在分析一个内核,它在一个GTX480中每个线程
使用
25个
寄存器
,每个块
使用
3568字节
的
共享
内存
。内核配置为启动16x16线程,线程缓存首选项设置为
共享
。根据GTX480
的
规范,该设备
的
每个SM有32768个
寄存器
,因此可以同时运行25 regs x 256 threads per block x 6 blocks per SM模块。但是,Compute Visual Profiler和
Cuda
浏览 1
提问于2012-10-24
得票数 2
回答已采纳
3
回答
用short替换int对
CUDA
中
的
性能有帮助吗
、
假设我们有足够
的
全局
内存
。用short替换int是否
会
提高
CUDA
的
性能?(如short节省了
共享
内存
、
寄存器
等
的
使用
) 欢迎您
的
建议。谢谢。
浏览 2
提问于2011-09-07
得票数 3
回答已采纳
1
回答
如何在
CUDA
编译中分配
寄存器
、
、
据说,每个内核
的
寄存器
数量
对于
CUDA
优化很重要,这个数字
的
上限可以通过nvcc中
的
-maxrregcount=N来设置。我不能理解这一点,因为我认为
寄存器
的
数量
可以简单地通过计算内核中
的
局部变量(可能还有传递
的
参数)来确定。我知道我错了,因为来自"nvcc --ptxas-options=-v“
的
报告远远超出了我
的
想法。有人能仔细考虑一下吗?
浏览 1
提问于2013-02-05
得票数 3
2
回答
每个多处理器
的
最大驻留线程数与。每个多处理器
的
最大驻留块数
、
我在我
的
K20上运行了一个关于并发内核执行资源
的
问题。我
的
流只有一点重叠,然后我想这可能是因为资源
的
限制。所以我参考了手册,我发现:每个多处理器
的
驻留块
的
最大
数量
是16,每个多处理器
的
驻留线程
的
最大
数量
是2048。答案1: 96/16 =6 答案2:
浏览 1
提问于2013-06-18
得票数 4
回答已采纳
1
回答
库达活动翘曲与常驻翘曲
、
、
在
CUDA
中
的
占用定义为常驻
CUDA
翘曲与active one有什么区别?从我在web上
的
研究来看,似乎一个块在整个执行过程中都是驻留在SM上
的
(即与其
寄存器
/
共享
内存
文件一起分配
的
)。和“积极”有什么区别吗? 如果我有一个内核,它很少
使用
寄存器
和
共享
内存
浏览 0
提问于2017-01-29
得票数 0
回答已采纳
1
回答
使用
无符号
的
短整数作为
寄存器
和
共享
内存
是否有意义?
、
在
CUDA
程序中
使用
无符号
的
短整数(用于存储
寄存器
的
内存
)和
共享
内存
(更快
的
访问)是否有意义?因此,没有理由<em
浏览 2
提问于2012-10-04
得票数 2
2
回答
关于
寄存器
的
CUDA
内核
的
优化
、
我正在
使用
CUDA
占用率计算器来优化我
的
CUDA
内核。目前我
使用
了34个
寄存器
和零个
共享
memory...Thus,每块310个线程
的
最大占用率为63%。当我以某种方式将
寄存器
(例如,通过
共享
内存
传递内核参数)更改为20或更低时,我可以获得100%
的
占用率。这是一个好方法吗?或者你
会
建议我
使用
另一种优化方法吗?此外,我还想知道是否有更新版本<em
浏览 1
提问于2011-05-19
得票数 4
回答已采纳
1
回答
在配置文件引导
的
优化之后,嵌套for循环速度更快,但缓存丢失率更高
、
、
、
我有一个程序,它
的
核心是一个二维数组,其形式是有一个简单
的
双for循环,有点像这样:这怎么可能呢?循环中没有条件项可
浏览 4
提问于2014-04-09
得票数 5
回答已采纳
1
回答
块
的
数量
可以同时调度。
这个问题也是从以下链接开始
的
:是否意味着当条件2和3
的
块数超过8时,只能调度8个块?它是否与任何条件无关,如
cuda
环境、gpu设备或算法?如果是的话,,这实际上意味着在某些情况下最好不要
使用
共享
内存
,这取决于此。然后,我们必须考虑如何判断哪个更好,
使用
还是不
使用
共享
内存
浏览 6
提问于2012-04-04
得票数 0
回答已采纳
1
回答
本地
内存
比
CUDA
中
的
共享
内存
慢吗?
、
、
、
、
我只发现一句话,本地
内存
比
寄存器
内存
慢,
寄存器
内存
是每线程两个类型。我想做
的
是一种中值滤波器,但
使用
给定
的
百分位数,而不是中位数。因此,我需要从列表中提取块,对它们进行排序,然后选择合适
的
块。但是我不能开始对
共享
内存
列表进行排序,否则就会出错。仅仅
复制到
浏览 1
提问于2011-08-30
得票数 15
1
回答
将64大小
的
数组存储在Nvidia GPU
的
寄存器
中合适吗?
我将编写一个块中有256个线程
的
库达内核,每个线程计算一对(i,j)所有的ans[i][j][k]。 最经典
的
方法将首先将A加载到
共享
内存
中。但是,我发现由于A将在线程中
使用
N次,所以在加载到
共享
内存
后,可以进一步将A[i]加载到
寄存器
中,以加快计算f(A[i], B[j][N])
的
速度。众所周知,
寄存器
比
共享
内存
更快。我已经查找了文档,发现每个线程最多可以有255个
寄存器
浏览 1
提问于2020-06-30
得票数 0
回答已采纳
1
回答
是否可以将
共享
内存
的
一部分用于每个线程?
、
、
我正在Ubuntu18.04上
使用
CUDA
10.1,我想知道是否可以将
共享
内存
的
一部分用于每个线程。我
的
意思是,比方说,我希望对每个不适合
寄存器
的
线程拥有一个相对较大
的
私有数组,并且将数组放入
共享
内存
将引入竞争条件,因为块上
的
每个线程都可以访问它。因此,我非常感兴趣地
使用
共享
内存
的
一部分作为“注册”,以避免竞
浏览 1
提问于2019-10-14
得票数 0
回答已采纳
1
回答
在
CUDA
中
使用
cos和sin
的
内核在每块
使用
更多476个线程时失败
、
、
在
CUDA
计算能力2.0中,我遇到了sin和cos
的
问题。当为
CUDA
计算能力1.x编译代码时,不会出现这种情况。我做了一个简单
的
代码。我在GeForce GTX 550 Ti和GeForce GTX 480上进行了测试,结果都是一样
的
。这是代码:#include <stdio.h>#include "
cuda
_runtime.h"
浏览 6
提问于2013-09-10
得票数 0
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
腾讯会议
云直播
对象存储
活动推荐
运营活动
广告
关闭
领券