rindow/rindow-openblas-ffi

PHP 上 FFI 的 OpenBLAS 库

1.0.3 2024-04-25 14:15 UTC

This package is auto-updated.

Last update: 2024-08-25 14:55:54 UTC


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"。