标签: gmp

如何查看GMP、MPFR和CamlIDL的版本?

我的问题很简单...我如何检查我的机器上安装的 GMP 版本?MPFR 怎么样?那么 CamlIDL 呢?

非常感谢

ocaml mpfr gmp

5
推荐指数
1
解决办法
1万
查看次数

将 cuda 与 gmp 链接

我正在尝试将 cuda 与 GNU 多精度库 (gmp) 一起使用。当我将 mpf_init() 之类的 gmp 指令添加到设备代码中时,出现以下编译器错误: tlgmp.cu(37): error: Calling a host function("__ gmpf_init") from a __ device__ /__ global__ function("histo" ) 不允许。

是否可以重新定义 gmp 指令,以便可以在设备代码中使用它们?

cuda gmp

5
推荐指数
1
解决办法
2074
查看次数

将载体与 GMP 一起使用

我正在尝试将载体与 GMP 一起使用。但是当我编译这样的东西时,我得到“[...]\bits\vector.tcc [Error] array必须使用大括号括起来的初始值设定项进行初始化”。任何具有动态大小的数据结构都可以工作 - 双端队列是最好的,但当我尝试这样做时,会出现更多错误。我该如何让这个停止失败?

#include <vector>
#include <gmp.h>

int main(){
mpz_t test;
mpz_init(test);
std::vector<mpz_t> a_vector;
a_vector.push_back(test);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ vector gmp

5
推荐指数
1
解决办法
1552
查看次数

如何使用 Visual Studio 编译适用于 Windows 的 GMP

我正在尝试在 Windows 上安装 gmp。我找到了在Windows上从源代码编译的mingw方式。但无法找到 gmp 6.1.2 或 Visual Studio 项目的二进制文件以便从源代码进行编译。所以问题是:在哪里可以下载 gmp 6.1.2 二进制文件或使用 Visual Studio 从源代码进行编译。

c++ windows gmp visual-studio

5
推荐指数
1
解决办法
1万
查看次数

我是否应该期望 GMP 的 mpf_class 比原始数据类型 double 慢得多?

我正在编写一个 C++ 程序来生成 Mandelbrot 集缩放。我所有的复数最初都是两个double(一个代表实部,一个代表复数部分)。这工作得相当快;对于我生成的图像类型,每帧 15 秒。

由于缩放效果,我想提高更多放大帧的精度,因为这些帧在 和 之间的差异非常min_xmax_x。我向 GMP 寻求帮助来解决这个问题。

现在,速度要慢得多;每帧 15:38 分钟。图像的设置与之前相同,算法也相同。唯一改变的是我使用的是mpf_class需要精确的小数(即只是复数)。为了比较性能,我使用了与 double 相同的精度:mpf_set_default_prec(64);

GMP是否改变精度mpf_class来满足表达的需要?换句话说,如果我有两个 64 位mpf_class对象,我用它们进行计算并将结果存储在另一个对象中mpf_class,精度是否可能会提高?我认为随着时间的推移,这会破坏性能,但我不确定这就是导致我的问题的原因。

我的问题:这种性能下降是否只是 GMP 和其他任意精度库的本质?你会给出什么建议?

编辑 1
我正在(即一直)使用-O3标志进行优化。我还进行了一项测试,以验证 GMP 不会自动提高对象的精度mpf_class。因此,问题仍然在于性能急剧下降的原因。

编辑 2
作为一个演示性示例,我将以下代码编译g++ main.cpp -lgmp -lgmpxx一次,如下所示,并将 everydouble替换为mpf_class. 用double它跑了 12.75 秒,用mpf_class它跑了 24 分 54 分钟。当它们的精度相同时,为什么会出现这种情况?

#include <gmpxx.h>

double linear_map(double d, double a1, double …
Run Code Online (Sandbox Code Playgroud)

c++ performance gmp

5
推荐指数
1
解决办法
742
查看次数

为什么adox 和adcx 在锐龙上不能很好地协同工作?

我花了很多时间手动优化低级整数算法,并取得了一些成功。例如,我的 6x6 乘法子程序花费了 66 个滴答声,而mpn_mul_basecase(6,6)在 Skylake 上花费了 82 个滴答声。我的代码发布在Github 上

我目前正在为 AMD Ryzen 开发 8x8 乘法。我正在使用 Ryzen 7 3800X 进行基准测试。我努力避免延迟。我研究了 Agner Fog 的“指令表”以及 Torbjörn Granlund 的“指令延迟......”。没有任何迹象表明 Ryzen 上的 adox/adcx 存在重大问题;Ryzen 和 Skylake 在 adox/adcx 方面应该没有太大区别。我已经使用 mulx 和 adcq、adox 或 adcx 之一对乘法 8x1 子程序进行了基准测试;子程序的所有三个变体在 Skylake 和 Ryzen 上都运行得很快(18-19 个滴答声)。

但是,当我尝试将 adox 和 adcx 混合在一起时,我的代码在 Ryzen 上运行速度非常慢。例如,我的 8x2 乘法子程序在 Skylake i7-6700 上花费了 34 个滴答,在 Ryzen 7 3800X 上花费了 293 个滴答(8 倍差)。

有什么建议为什么 mulx/adox/adcx 代码在 Ryzen 上执行速度慢 …

x86 cpu-architecture gmp amd-processor adx

5
推荐指数
1
解决办法
128
查看次数

配置从源代码构建 gdb 时缺少 gmp

我正在尝试从源代码构建gdb,版本是11.1。我已经配置了 GMP 包括路径,但配置脚本仍然报错。

configure: error: GMP is missing or unusable
Run Code Online (Sandbox Code Playgroud)

我复制了配置日志。

configure:10433: checking for libgmp
configure:10453: gcc -o conftest -g -O2      conftest.c -lncurses -lm -ldl  -lgmp >&5
conftest.c:53:17: fatal error: gmp.h: No such file or directory

Run Code Online (Sandbox Code Playgroud)

我的配置命令如下所示。

configure --prefix=/home/xxx/ins/gdb_11 --with-gmp-include=/home/xxx/ins/gmp-6.2.1/include --with-gmp-lib=/home/xxx/ins/gmp-6.2.1/lib
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

gdb gmp

5
推荐指数
4
解决办法
1万
查看次数

gmp 单元测试在 Ventura Mac m1 上失败

我在 M1 Pro 芯片组上运行 Mac OS Ventura (13.0)。

我成功编译了 GMP 版本 6.2.1,但大多数单元测试都失败了。

要么与

分段错误:11

或与

中止陷阱:6

Version:           GNU MP 6.2.1
Host type:         aarch64-apple-darwin22.1.0
ABI:               64
Install prefix:    /usr/local
Compiler:          gcc
Static libraries:  yes
Shared libraries:  yes

============================================================================
Testsuite summary for GNU MP 6.2.1
============================================================================
# TOTAL: 50
# PASS:  14
# SKIP:  0
# XFAIL: 0
# FAIL:  36
# XPASS: 0
# ERROR: 0
============
Run Code Online (Sandbox Code Playgroud)

例子:

../../test-driver: line 107: 36102 Segmentation fault: 11  "$@" > $log_file 2>&1
FAIL: t-toom22 …
Run Code Online (Sandbox Code Playgroud)

gmp apple-m1 macos-ventura

5
推荐指数
1
解决办法
512
查看次数

R gmp包安装失败;配置:错误:找不到头文件 gmp.h

尝试安装R gmp包时,安装失败,因为出现以下错误:configure: error: 头文件 gmp.h not found

整个日志:

> installing *source* package 'gmp' ...
> package 'gmp' successfully unpacked and MD5 sums checked
> using staged installation
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU …
Run Code Online (Sandbox Code Playgroud)

r gmp install.packages

5
推荐指数
1
解决办法
4091
查看次数

从float到mpz_t

我在C中使用GMP.是否可以将mpz_t设置为浮点值?

c gmp

4
推荐指数
1
解决办法
1326
查看次数