rindow / rindow-openblas-ffi
PHP 上 FFI 的 OpenBLAS 库
1.0.3
2024-04-25 14:15 UTC
Requires
- php: ^8.1
- interop-phpobjects/polite-math: ~1.0.7
Requires (Dev)
- ext-ffi: *
- rindow/rindow-math-buffer-ffi: >=1.0.0
README
Rindow OpenBLAS FFI 是一个通用的 N 维缓冲区,用于 OpenBLAS 和数学库。它可以通过 PHP 的 FFI 接口使用。
- 提供了一维通用缓冲区,用于 C、C++ 语言和 PHP 之间的数据交换。
- 为 PHP 提供了 OpenBLAS 库。仅提供 OpenBLAS 中常用的函数。
- 提供了一些不在 OpenBLAS 中包含的常用数学库。
可以与 Rindow Math Matrix 一起进行非常快速的 N 维数组操作。
当您想使用 PHP 进行深度学习时非常有用!
要求
- PHP 8.1 或 PHP8.2 或 PHP8.3
- Windows 或 Linux (Ubuntu 20.04 或 Debian 12 或更高版本)
- OpenBLAS
如何下载和设置
Windows
OpenBLAS 库的版本号包含在 rindow-openblas 预构建存档文件的文件名中。
将其解压缩到合适的位置,并在 bin 目录中设置执行路径。
TMP>set PATH=%PATH%;\path\to\OpenBLAS\bin
然后使用 composer 进行设置。
C> mkdir \your\app\dir C> cd \your\app\dir C> composer require rindow/rindow-openblas-ffi
Linux
使用 apt 命令安装 openblas
$ sudo apt install libopenblas0-openmp liblapacke
然后使用 composer 进行设置。
$ mkdir \your\app\dir $ cd \your\app\dir $ composer require rindow/rindow-openblas-ffi
Linux 的故障排除
由于 rindow-matlib 目前使用 OpenMP,因此请选择 OpenBLAS 的 OpenMP 版本。
使用 OpenBLAS 的 pthread 版本可能会导致冲突,变得不稳定且速度慢。在 Windows 上不会出现此问题。
如果您已经安装了 OpenBLAS 的 pthread 版本,
$ sudo apt remove libopenblas0-pthread
但如果您无法删除它,您可以使用 update-alternatives 命令切换到它。
$ sudo update-alternatives --config libopenblas.so.0-x86_64-linux-gnu $ sudo update-alternatives --config liblapack.so.3-x86_64-linux-gnu
如果您真的想使用 OpenBLAS 的 pthread 版本,请切换到 rindow-matlib 的串行版本。
在 Windows 上与 OpenBLAS 没有操作模式冲突。
但是,如果您真的想使用 OpenBLAS 的 pthread 版本,请切换到 rindow-matlib 的串行版本。
$ sudo update-alternatives --config librindowmatlib.so There are 2 choices for the alternative librindowmatlib.so (providing /usr/lib/librindowmatlib.so). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/rindowmatlib-openmp/librindowmatlib.so 95 auto mode 1 /usr/lib/rindowmatlib-openmp/librindowmatlib.so 95 manual mode 2 /usr/lib/rindowmatlib-serial/librindowmatlib.so 90 manual mode Press <enter> to keep the current choice[*], or type selection number: 2
选择 "rindowmatlib-serial"。