社区
OpenCL和异构编程
帖子详情
[求助] 用opencl在GPU上的float运算和CPU上的float计算
moon8150
2013-12-09 06:17:14
用opencl在GPU上的float运算和CPU上的float计算,结果精度相差很大,整数就没问题,是少设置了什么还是怎么回事?
...全文
2368
4
打赏
收藏
[求助] 用opencl在GPU上的float运算和CPU上的float计算
用opencl在GPU上的float运算和CPU上的float计算,结果精度相差很大,整数就没问题,是少设置了什么还是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lcwyylcwyy
2014-02-18
打赏
举报
回复
另外,编程方面也应该注意一下,尽量用相近的数相加吧,大加大,小加小。
menzi11
2014-02-11
打赏
举报
回复
为了速度,GPU计算ieee标准浮点数会将非规格浮点数认为是0.而CPU默认不是.
outstander
2013-12-12
打赏
举报
回复
虽然GPU浮点运算,CPU的SSE浮点运算以及CPU普通CPU浮点运算这三类指令都以IEEE754标准存储float变量,但它们实现浮点运算的加减乘除的方式是不一样的,这就导致了前两者与CPU普通浮点运算精度不一致 将GPU的运算结果和CPU的SSE指令相对比,精度会是一样的。它们在硬件上实现是类似,
GPU和SSE的设计更加低功耗和快速。
请参考:http://developer.download.nvidia.com/assets/cuda/files/NVIDIA-CUDA-Floating-Point.pdf
fronteer
2013-12-10
打赏
举报
回复
这个问题以前也有人提出,我们也很感兴趣,我建议将问题细化一下: 1) 不用 Runtime 函数的情况,如在kernel上做两个float类型数的除法,看 CPU 和 GPU 设备上的结果有多大差距. 这种情况,结果只和编译器有关。在GPU上应该没太多可选择的,在CPU上编译器可选择用x387或SSE指令集作浮点运算, 我记得在CPU上,如果是64位Binary, 编译器会用SSE指令集做浮点运算;如果是32位Binary,则编译器保留用x387做浮点 运算,若要用SSE做浮点运算,需手工用 enable-sse的选项. SSE和x387所能达到的精度是不一样的,因为x387有80位寄存器,SSE只是64位寄存器. SSE的优势是和通用寄存器之间传数据更方便. 2) 如果用了Runtime 函数,则问题更复杂,因为我们目前没有文档知道在 kernel 中是如何使用外部函数的。 不象在 CPU 上用一般C语言写的程序中,我们很容易将一个.dll或.so库中的代码通过反汇编,来确定其函数用的具体的指令集. 这种情况我建议先定位是那个 Runtime 函数导致的精度差别. 如是 sqrt(), sin() 或 exp(),还是所有这些函数都或多或少都会导致精度问题。以后我们获得了更多的关于GPU上ALU及指令集的资料及Runtime的实现方式,也许能作出解释 3)另外,你的 OpenCL 浮点代码在 CPU 设备上运行的结果,和用 CPU上 native-C 写的代码的结果,有差别吗?
2
OpenCL
float
_comp.docx
OpenCL
,全称为Open Computing Language,是一种开放标准的并行编程框架,主要应用于异构
计算
,包括
GPU
(图形处理器)、
CPU
(中央处理器)以及其他类型的
计算
设备。它为开发者提供了在多种硬件平台上编写高效并行...
GPU
上稀疏矩阵与矢量乘积
运算
的一种改进.pdf
随着科学
计算
和工程实践需求的不断增长,稀疏矩阵与矢量乘积(SpMV)作为一个基础而重要的
运算
,在高性能
计算
领域中扮演了关键角色。SpMV
运算
广泛应用于线性方程求解、有限元分析、机器学习以及图形处理等多个领域。...
opencl
向量加法
OpenCL
利用
GPU
(图形处理器)、
CPU
和其他处理器来执行并行
计算
,旨在充分利用现代硬件的潜力。在本项目“
opencl
向量加法”中,我们将探讨如何使用
OpenCL
实现两个向量的加法操作。 向量加法是
计算
科学中的基本操作,...
OpenCL
编程与优化Part I
OpenCL
(Open Computing Language)是一种为异构平台编写程序的框架,这种框架允许开发者在广泛的处理器上编写代码,包括
CPU
、
GPU
、DSP、FPGA等,重点在于统一的编程模型,允许代码跨平台运行。AMD资深工程师谢海波...
高性能
计算
实验报告
CPU
/
GPU
SIMD
例如,NVIDIA的CUDA和AMD的
OpenCL
框架允许程序员利用
GPU
的SIMD能力来编写高性能并行程序,特别适合处理大规模并行
计算
问题。 在华为的Kunpeng处理器上,由于其基于ARM架构,可以充分利用NEON指令集进行SIMD优化。...
OpenCL和异构编程
608
社区成员
574
社区内容
发帖
与我相关
我的任务
OpenCL和异构编程
异构开发技术
复制链接
扫一扫
分享
社区描述
异构开发技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章