用户
 找回密码
 立即注册
wch8802 该用户已被删除
发表于 2013-9-22 09:47:54
602813
通过利用shared memory 实现1024X1024的矩阵乘法,内核函数一样的,用运行时API实现主函数调用内核函数需要花费151.323486 ms,用驱动API实现主函数调用内核函数需要花费37.773964ms完成计算,感觉匪夷所思,我都怀疑是不是自己测错了,请高手赐教。__double2loint,__hiloint2double头文件是什么(在CUDA 5.5 的头文件名)。
使用道具 举报 回复
发表于 2013-9-22 12:46:36
LZ您好:

您在使用runtime API的时候,建议从第二次kernel执行开始计算kernel的执行时间,以免第一次执行时,一些初始化工作影响计时。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-9-22 13:34:46
楼主您好,

您自己的测试错误,原因请见ICE上贴说法。
建议楼主不要自己测试,而是以profiler给出的时间为准。这样可以节省您大量时间,以及避免您无辜的怀疑世界。

关于此2函数,请#include <cuda_runtime.h>(请注意此头文件以及此头文件引用的其他头文件中不一定含有此2函数的代码)
(此2函数的代码在头文件是没有的的,编译器以一串ptx模板在编译的时候插入你的ptx,真要看,可以使用--keep参数编译,然后观察中途的ptx)

感谢来访。
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:01:50
ice 发表于 2013-9-22 12:46
LZ您好:

您在使用runtime API的时候,建议从第二次kernel执行开始计算kernel的执行时间,以免第一次执行 ...

您好,我是采用事件这种方式直接测试内核函数的运行时间,没有测试数据的搬运时间。两种版本计算结果都正确,时间相差太大。以您的经验我哪里会出现错误?
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:04:02
横扫千军 发表于 2013-9-22 13:34
楼主您好,

您自己的测试错误,原因请见ICE上贴说法。

谢谢您的回复。文档我看了,但是我想自己亲身测试体会一下。我现在就想弄明白自己哪地方出错了。
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:04:44
wch8802 发表于 2013-9-22 15:01
您好,我是采用事件这种方式直接测试内核函数的运行时间,没有测试数据的搬运时间。两种版本计算结果都正 ...

LZ您好:

请您以profiler为准,并给出测试截图以便分析。

祝您好运~
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:11:01
wch8802 发表于 2013-9-22 15:01
您好,我是采用事件这种方式直接测试内核函数的运行时间,没有测试数据的搬运时间。两种版本计算结果都正 ...

楼主您持续拒绝接受我和ICE的正确:
原文:“请从第二次kernel执行开始计算kernel的执行时间”

如果您认为例如编译参数神马的都完全一样,只有这一种可能的(即上文说的runtime的初始化等开销)。

强烈第三次建议您从第二次运行开始测试。

如果您不肯接收此建议,请使用profiler。

这是对您的第三次重复给出建议。谢谢。
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:53:47
横扫千军 发表于 2013-9-22 15:11
楼主您持续拒绝接受我和ICE的正确:
原文:“请从第二次kernel执行开始计算kernel的执行时间”

“请从第二次kernel执行开始计算kernel的执行时间”,这里的“第二次kernel执行开始计算”是什么意思,我不是太懂?还有你指的profiler是指什么?指的是官方的测试数据文档吗?
使用道具 举报 回复 支持 反对
发表于 2013-9-22 15:57:11
横扫千军 发表于 2013-9-22 15:11
楼主您持续拒绝接受我和ICE的正确:
原文:“请从第二次kernel执行开始计算kernel的执行时间”

“请从第二次kernel执行开始计算kernel的执行时间”,这里的“第二次kernel执行开始计算”是什么意思,我不是太懂?还有你指的profiler是指什么?指的是官方的测试数据文档吗?
使用道具 举报 回复 支持 反对
发表于 2013-9-22 16:04:31
本帖最后由 wch8802 于 2013-9-22 16:14 编辑
ice 发表于 2013-9-22 12:46
LZ您好:

您在使用runtime API的时候,建议从第二次kernel执行开始计算kernel的执行时间,以免第一次执行 ...

请问如何才能测内核函数第二次执行时的时间?是不是for循环求平均来减小第一次时间带来的初始化时间?或者说是for循环两次,在for循环里加上判断语句判断第二次计时。
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册