关于suitesparse在windows平台下速度极慢以及奇奇怪怪的问题解决

本文介绍在Windows环境下编译Suitesparse库时遇到的性能瓶颈和编译错误。解决方法包括使用高性能BLAS替换及升级到suitesparse-metis-for-windows-1.5.0版本,修复了InputError。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

好像suitesparse原本没有windows版本,然后国外一个大佬写了cmake搞出来的。所以可能存在一些奇奇怪怪的问题吧。主要是一下两点

1.windows相比linux环境速度奇慢。

2.新手编译这个库经常会下载suitesparse-metis-for-windows-1.3.0但是1.3.0有一个小问题,就是使用cholmod的时候会报Input Error:Incorrect objective type,我用的时候虽然对结果、性能没有造成任何影响,但是会觉得不爽。

关于如何编译这个库可以去看上面的github链接,里面的readme说的很清楚了,还有这位大佬的博客也有中文版的。

解决方法

关于第一个问题,在windows环境下速度极慢的原因主要是blas的不同实现造成性能差距过大,我们只需要把suitesparse里面的libblas.lib换成OpenBLAS或者其它高性能BLAS实现就ok了
在编译vs环境的OpenBLAS库教程
记得把旧的lib另外保存,新的名字换成libblas.lib

第二个问题的话,用suitesparse-metis-for-windows-1.5.0就可以了,好像1.3.1也解决了。
然后安装官网上的教程编译1.5.0会有一个报错,解决方法就是把gk_arch.h最后一段代码改成下面的代码就可以了

//#ifdef __MSC__
/* MSC does not have rint() function */
#if(_MSC_VER < 1800)
#define rint(x) ((int)((x)+0.5))  
//#endif

/* MSC does not have INFINITY defined */
#ifndef INFINITY
//#if(_MSC_VER < 1900)
#define INFINITY FLT_MAX
//#endif
#endif
#endif

#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值