-CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)

这两天编译的时候由于用到了CGAL库,在用GCC或者其他编译器的时候遇到了问题:
*Expr: -CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1)
File: /usr/include/CGAL/Interval_nt.h
Line: 209
Explanation: Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)*

上网搜了很久,有两个资料讲的比较详细,CGAL官网的discussion也讨论过这个,在下面也列出来了.具体的原因没看明白,解决办法可以归结为:
如果在源代码里面包含了CGAL库里的头文件(也就是调用了它实现的某个函数),这是在编译的时候需要使用GCC的参数 -frounding-math 选项.
如果使用的nvcc编译.cu文件,由于nvcc不是别上面的参数,此时在nvcc编译选项后添加宏-DCGAL_DISABLE_ROUNDING_MATH_CHECK应该就没问题了.

我是在调试修改后的caffe的时候遇到的这个问题,在正常情况下编译和运行caffe都没有问题,在debug模式下,编译没有问题,但是运行就会出现上面的错误,后来在reference里面找到了这个办法.如果有对这个问题更深入的解释或者更好的办法,欢迎交流~

Reference
[1]http://cgal-discuss.949826.n4.nabble.com/CGAL-Assertion-exception-CGAL-IA-MUL-1-1-10-1-CGAL-IA-MUL-1-1-10-1-td4655241.html
[2]http://cgal-discuss.949826.n4.nabble.com/frounding-math-trouble-with-GCC-4-0-1-td952635.html

阅读更多
文章标签: gcc nvcc cgal
个人分类: caffe
上一篇Caffe Ubuntu 下的调试
下一篇6个处理数据不均衡的策略
想对作者说点什么? 我来说一句

IBM serverguie 10.1

2016年07月11日 31B 下载

arcgis 10.1 汉化中文包

2013年12月20日 346KB 下载

没有更多推荐了,返回首页

关闭
关闭