楼上答案驴唇不对马嘴怒答一發:标度标度因数误差误差Scale Factor Error(ppm):传感器的输出值与实际角速度的误差;
你对这个回答的评价是?
楼上答案驴唇不对马嘴怒答一發:标度标度因数误差误差Scale Factor Error(ppm):传感器的输出值与实际角速度的误差;
你对这个回答的评价是?
下载百度知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
主要探讨的有两个问题:
1、当矩陣维度为16*16时,可以计算出来(用全1矩阵进行测试)并且加速比大于1(GPU快),可是当矩阵维度提升到时此时会出错(计算不准确,显礻器驱动程序已停止响应 并且已成功恢复 )怎么解决?
2、先前测试了全1矩阵现在改成随机数矩阵(包括小数和整数),16*16等矩阵都不能嘚到正确的结果怎么办?
首先贴出多线程的矩阵乘法代码:
第一个问题:当测试的矩阵时此时GPU的计算时间不仅超过了matlab的计算时间,更主要的时超出了GPU的设置时间(TDR一般为2s)测试需要打开nsight visual studio edition进行TDR的设置,至于如何设置博客中可以找见。
第二个问题实际上是编程的一个低級错误cuda是按列存储的,按列取出并计算而matlab是按行来的,所以计算结果会出现很大分歧、很大误差此时我们在调用矩阵计算函数matrixMulCuda(A,B)B之前将其转置后再计算,或者直接变成matrixMulCuda(BA)也可以,这样就可以和matlab的计算结果进行比对了
在整数的计算上,是没有误差的(随机矩阵)
浮点数的计算上误差较小(随机矩阵),F为误差如下所示。