油条大哥大 发表于 2024-1-17 15:31:46

请问GMP能否进行矩阵运算

目前我在测试VS2005下大矩阵的运算速率对于5000*5000的大矩阵,在matlab中运算速度明显比自己编写的c++程序要快,于是尝试在c++中调用blas库,但是速度也与matlab没法比,不知道有没有可能是blas库版本的问题。后来看到gmp能够计算大数据,而且效率很高,想测测试试,可是通过大家提供的库文件,没有找到相关的运算函数,是不是需要自己写?可是关于指针的运算gmp中的例程不多,不知道该如何下手,请各位给一些建议,谢谢啦!

我主要是希望能找到大矩阵乘法的高效率开源库,不知道各位有什么好的开源代码告诉我,谢谢啦

Kristslots 发表于 2024-1-17 15:32:30

矩阵运算是矩阵运算,大数运算是大数运算,不能混淆。大数不等于大数据量,而是针对某个数本身,比如1亿位精度的pi。
矩阵运算的数据类型大多还是double型。
blas线性代数子库,分三级别:1.向量运算2.矩阵与向量运算3.矩阵与矩阵运算。
比较好的blas库有:mkl , atlas , gotoblas 等等 (matlab有用到atlas 或mkl).
不想过多重复,坛子里有多次讨论.

dingji 发表于 2024-1-17 15:33:11

插话问句:有大数的矩阵运算库么?
大概2000位有效数字的矩阵

AbertVab 发表于 2024-1-17 15:33:28

3# zeroieme
如果矩阵比较小,简单的加减乘除(用大数库)解决。
如果矩阵比较大,比如5000*5000的大矩阵(虽说在矩阵库里认为不大,因为是double型),可你说大概2000位有效数字的矩阵,不说运算,仅是存储都难以吃消吧。
一个元素有2000/1og(2) =6643bit =830.48Byte
5000*5000的一个大矩阵需要:5000*5000*830.48Byte=19.34GB

afijozaci 发表于 2024-1-17 15:33:51

谢谢G-Spider
页: [1]
查看完整版本: 请问GMP能否进行矩阵运算