腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
0
回答
将
统一内存指针传
递给
内核
会
减慢
程序
的
运行
速度
、
、
在
CUDA
中,向
内核
传递统一内存指针
会
减慢
程序运行
速度
吗?为什么传递一个指针需要花费太多
的
时间?指针? 我
浏览 8
提问于2017-06-15
得票数 0
回答已采纳
2
回答
CUDA
内核
的
参数
、
当为特定
的
线程配置调用
CUDA
内核
时,
是否
有任何严格
的
规则在哪些内存空间(设备/主机)
内核
参数
中驻留以及它们应该是什么类型?假设我
启动
了一个一维线程网格我可以
将
整数
参数
int foo直接传
递给
CUDA
<
浏览 4
提问于2011-11-28
得票数 8
回答已采纳
2
回答
CUDA
:向
内核
传递
参数
会
大大
减慢
内核
的
启动
速度
吗?
、
这里是
CUDA
初学者。MyKernel<<<blocks,threadsperblock>>>(double_ptr, double_ptr, int N, double x);
浏览 5
提问于2011-06-28
得票数 6
回答已采纳
2
回答
启动
单个
CUDA
内核
的
多个主机线程
、
对于我
的
CUDA
开发,我使用了一台16核
的
机器,1个GTX 580 GPU和16个SMs。对于我正在做
的
工作,我计划
启动
16个主机线程(每个核心上1个),每个线程1个
内核
启动
,每个线程有1个块和1024个线程。我
的
目标是在16个SMs上并行运行16个
内核
。这是可能/可行
的
吗?我试图尽可能多地阅读有关独立上下文
的
信息,但似乎没有太多
的
信息可用。据我所知,每个主机线程都可以有
浏览 11
提问于2012-09-06
得票数 9
回答已采纳
2
回答
CUDA
-每次都需要分配和释放内存吗?
、
、
我有一个带有
CUDA
的
卷积
内核
,它经常被调用(它用于实时渲染)。我应该在每次调用
内核
时都使用cudaMalloc和cudaFree吗?我试图存储一个指向cudaMalloc结果
的
指针,并在
内核
执行之前通过cudaMemcpy继续操作,但我遇到了奇怪
的
行为(比如
内核
执行后内存清空)。我也在考虑使用固定内存,但如果我每次都必须分配和释放它,这甚至可能
会
减慢
应用程序
的
速度
。我应该如何处理
浏览 11
提问于2012-04-13
得票数 0
回答已采纳
1
回答
消除
内核
调用之间
的
cudaMemcpy
我有一个被多次调用
的
CUDA
内核
(100万不是限制)。我们
是否
再次
启动
内核
取决于标志(result_found),即
内核
返回。sizeof(bool), cudaMemcpyDeviceToHost); break;} 分析器说,cudaMemcpy比实际
内核
调用(cudaMemcpy:~88 to,cudaLaunch:~17 to)花费更多
的
时间来执行。因
浏览 1
提问于2015-11-23
得票数 0
回答已采纳
1
回答
在第二个
内核
上出现
cuda
“无效
参数
”错误
我有一个关于
内核
启动
的
问题。我有一个使用一个大
内核
的
程序。现在,由于同步问题,我需要将其一分为二。第一个
内核
做一些初始化工作,并将传
递给
第二个
内核
的
参数
子集传
递给
第二个
内核
。只运行第一个
内核
就可以了。在执行第二个
内核
时,仅运行第二个
内核
会
失败,这是因为缺少初始化,但
内核
本身已
启动</e
浏览 3
提问于2012-12-22
得票数 0
回答已采纳
1
回答
在Numba中实现
cuda
gridsync()安全吗
、
、
、
如果cudaKernal1
的
执行
速度
非常快,那么以下代码
的
运行
速度
将
提高1000倍 X = X + cudaKernel1[(100,100),(32,32)] (X) 通过
将
循环放在同一个
内核
中,避免了gpu
内核
的
设置时间。然而,如果每一步都非常快,那么调用
内核
所需
的
时间比调用
内核
要长,所以如果您可以循环执行这些步骤而不退出,那
浏览 0
提问于2019-02-10
得票数 0
2
回答
如果使用
cuda
-memcheck,则会出现
Cuda
内核
错误
、
我有一个
Cuda
内核
,如果我使用nsight
cuda
分析器,或者如果我直接从终端运行它,它运行得很好。但是如果我使用这个命令它会崩溃,并显示“未指明
的
启动
失败”。我在每个
内核
代码之后都会用到这个。我注释掉了另一个由于寄存器太多而没有
启动
的
内核</e
浏览 1
提问于2013-07-10
得票数 1
回答已采纳
1
回答
意外
的
CUDA
_ERROR_INVALID_VALUE从cuLaunchKernel()
、
我试图使用
CUDA
驱动程序API
启动
一个
内核
。现在,对于我
的
一个
内核
,我得到了
CUDA
_ERROR_INVALID_VALUE。文档 如果使用kernelParams和extra指定
内核
参数
(即kernelParams和extra都是非NULL),则将返回错误NULL。好吧,我不会那么做
的
,而且我还在拿
CUDA
_ERROR_INVALID_VALUE。为了更安全起见,我在
启动
内核
浏览 10
提问于2020-08-16
得票数 0
1
回答
为什么我
的
相当琐碎
的
CUDA
程序
会
因为某些
参数
而出错?
、
我做了一个简单
的
CUDA
程序来练习。它只是
将
数据从一个数组拷贝到另一个数组:import pycuda.autoinitfrom pycuda.compilerblock and grid sizes.grid_size = (N / block_size_x, 1) # Create the
CUDA
_driver.Logi
浏览 1
提问于2012-11-02
得票数 1
回答已采纳
2
回答
cuLaunchKernel和
CUDA
_ERROR_INVALID_HANDLE失败
的
原因是什么?
、
我正在使用cudLaunchKernel()驱动程序API函数
启动
我编译
的
CUDA
内核
。我在kernelParams数组中传递
参数
,并将nullptr传
递给
extra
参数
。不幸
的
是,这失败了,错误是:
CUDA
_ERROR_INVALID_HANDLE。为什么?我检查了,看看函数在什么情况下可能
会
失败,编辑--它用
CUDA
_ERROR_INVALID_VALUE讨论失败(不是一回事)。它没有讨论我所犯
浏览 6
提问于2020-07-07
得票数 1
回答已采纳
1
回答
CUDA
和图形
内核
的
执行顺序
、
我有一个类似这样
的
代码。我
的
问题是。
CUDA
API保证
CUDA
内核
即使是异步
的
,也
会
按
启动
顺序执行。这
是否
适用于渲染?假设我在GPU上进行了一些渲染相关
的
计算。如果我
启动
异步
CUDA
浏览 3
提问于2014-02-07
得票数 1
1
回答
启动
多个
CUDA
内核
是否
需要为每个
内核
返回主机?
、
如果我在相同
的
上下文中
启动
多个
CUDA
内核
,并且
内核
之间存在依赖关系(输入中
的
第一个
内核
输出到第二个
内核
,等等),那么在每个
内核
完成执行后,控制
是否
会
返回到主机?如果没有,您能简要描述一下
CUDA
卡上
的
“
内核
入队”机制是如何工作
的
吗?
浏览 1
提问于2015-02-18
得票数 0
1
回答
向cuLaunchKernel传递
参数
的
有效方法?
CUDA
提供了三种指定
内核
参数
的
方法。 选项1
将
导致N个GPU访问,而选项2
将
只导致一个?如果选项1为真,
CUDA
会
重新访问GPU来设置
参数
,即使它
的
值没有改变,跨
浏览 3
提问于2014-09-11
得票数 1
回答已采纳
4
回答
什么时候打电话给cudaDeviceSynchronize?
、
、
据我从
CUDA
文档中了解到,
CUDA
内核
是异步
的
,因此我们似乎应该在每次
内核
启动
后调用cudaDeviceSynchronize。然而,除了在时间测量之前,我尝试了与任何cudaDeviceSynchronize相同
的
代码(训练神经网络)。我发现我得到了同样
的
结果,但是
速度
在7-12倍之间(取决于矩阵
的
大小)。因此,问题是,除了时间测量之外,
是否
有任何理由使用cudaDeviceSynchroniz
浏览 15
提问于2012-08-09
得票数 84
4
回答
将
整数从GPU复制到CPU
在每次
内核
调用之后,我需要将单个布尔值或整数值从设备复制到主机(我在for循环中调用相同
的
内核
)。也就是说,在每次
内核
调用之后,我需要将一个整数或布尔值发送回主机。做这件事最好
的
方法是什么?我应该
将
值直接写入RAM吗?或者我应该使用cudaMemcpy()?或者,有没有其他方法可以做到这一点?在每次
内核
启动
后只复制1个整数
会
减慢
我
的
程序吗?
浏览 2
提问于2011-03-15
得票数 5
1
回答
内核
参数
类型必须满足哪些确切
的
约束?
、
、
、
在编写
CUDA
内核
时,常见
的
智慧是坚持使用类型
的
参数
-因为
启动
内核
意味着
将
参数
复制到设备上
的
常量内存(可能稍后还会复制到特定于线程
的
寄存器)。但是,这是
内核
(__global__函数)
参数
的
充分必要条件吗?我在
CUDA
编程指南和C++最佳实践指南中都找不到这一点。
浏览 1
提问于2021-05-30
得票数 1
1
回答
指定流
的
内核
启动
,但使用默认共享内存大小
、
、
、
我需要在
CUDA
中指定
内核
启动
的
流。
内核
使用一些共享内存,其大小在
内核
代码中定义。words[cBlockSize/16];} 但是,在
内核
启动
表达式中,共享内存大小
参数
位于stream
参数
之前。那么,如何告诉
CUDA
使用<e
浏览 10
提问于2016-09-12
得票数 0
回答已采纳
1
回答
将
C++对象传
递给
CUDA
内核
、
、
我有一段代码,它由我没有修改权限
的
对象组成。另一方面,我必须编写
CUDA
内核
来做一些计算。目前,我正在
将
所需
的
信息转换为数组或结构,并将其传递。
是否
可以
将
这样
的
对象传
递给
CUDA
内核
,以及
CUDA
内核
是否
有方法访问该类
的
私有成员。有些人也向我提出了推力。
浏览 2
提问于2012-06-24
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
如何在Julia编程中实现GPU加速
一文揭开 NVIDIA CUDA 神秘面纱
从头开始进行CUDA编程:流和事件
全球首个AI CUDA工程师来了!将PyTorch原生实现提速10-100倍
宗熙先生谈显卡(4):什么是CUDA内核?它的用途和工作原理
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
腾讯会议
活动推荐
运营活动
广告
关闭
领券