Skip to content

Releases: rindow/rindow-math-matrix

Boot log function

29 Apr 06:36
Compare
Choose a tag to compare

Added boot log function

Added -v option to vendor/bin/rindow-math-matrix command.
Executing the command with the -v option will display the error log when loading the driver.
This will help you resolve the issue if you cannot find the reason why the service level becomes Basic.

For new rindow PHP Extensions

29 Apr 14:00
Compare
Choose a tag to compare

Compatible with new generation PHP extensions

  • Supported PHP Extension created for Rindow Math Matrix version 2.
  • New extensions now use name-based DLL calls on Windows. It can handle changes in OpenBLAS and DLL versions.

Interface remains V1.1

  • Rindow Neuralnetworks v1 works because the interface does not change.

Fully compatible for THE LEGACY with PHP7.x and PHP8.0

  • Windows and Linux binaries of rindow_openblas, rindow_opencl, and rindow_clblast can be downloaded for PHP7.2, 7.3, 7.4, and 8.0.
  • Works on PHP 7.x and PHP8.0.

Type definitions

25 Apr 16:07
Compare
Choose a tag to compare

Complete review of type definitions

  • Type definitions were applied to variables and arguments that did not have type definitions, a legacy of php7.

Add BLAS function

  • Added rotm, rotmg

Bug when error occurs

  • Fixed minor bugs that occur when errors occur

Fix SelectorTest

27 Mar 05:09
Compare
Choose a tag to compare

Fix Selector Test miss case

Added command to check status

22 Mar 03:46
Compare
Choose a tag to compare

Added command to check status

You can check the service level and driver loading status with the following command.

$ vendor/bin/rindow-math-matrix
Service Level   : Accelerated
Buffer Factory  : Rindow\Math\Buffer\FFI\BufferFactory
BLAS Driver     : Rindow\OpenBLAS\FFI\Blas
LAPACK Driver   : Rindow\OpenBLAS\FFI\Lapack
Math Driver     : Rindow\Matlib\FFI\Matlib
OpenCL Factory  : Rindow\OpenCL\FFI\OpenCLFactory
CLBlast Factory : Rindow\CLBlast\FFI\CLBlastFactory

Version 2.0

20 Mar 04:49
Compare
Choose a tag to compare

Summary:

  • The default access method for external libraries has been changed from PHP Extension to FFI.
    • This eliminates the need for individual support for each PHP version, operating system, and external library version.
    • PHP Extension can still be used for environments where FFI is not available, but it will not be actively updated in the future.
    • Modules for loading external libraries are now in plugin format and can be replaced. Plugins can be used to switch between FFI and PHP Extension.
  • The data serialization method has been changed. The output format has also been changed.
    • In the old format, the PHP class name was directly embedded in the storage format, which made it difficult to flexibly extend the functionality.
    • In the new format, keywords are embedded.
  • Support for complex number functions in the BLAS library has been added.
    • A complex number data type has been supported. However, this is currently only for the BLAS library, not all functions.
  • The syntax for specifying array subscript ranges has changed.
    • In version 1, the method to specify elements 0 to 4 was [0,4], but in version 2 it is specified as [0,5]. This is to match the notation of other mathematical libraries.
    • You can specify the version 1 style with NDArrayPhp::$rangeStyle and NDArrayCL::$rangeStyle. You can explicitly declare that it is in the version 2 style using the R function. Specify as R(0,5).
      • RANGE_STYLE_DEFAULT: Default version 2 style
      • RANGE_STYLE_1: Version 1 style
      • RANGE_STYLE_FORCE2: Force R function style
  • Automatic data type detection has been abolished in the array() function. The default is fixed to float32. If you want to use a data type other than the default, please specify it explicitly.
  • With the introduction of complex numbers, the functions amax and amin now return the absolute value.
  • With the introduction of complex numbers, the conj option has been added and the order of arguments for some functions has changed. Please use named arguments.
  • New functions have been added.
    • omatcopy, pow (function changed), notEqual

Further details:

  • FFI: Foreign Function Interface. It allows PHP to call functions written in other languages, such as C.
  • Serialization: The process of converting data into a format that can be stored or transmitted.
  • Complex numbers: Numbers that have both a real and imaginary part.
  • Named arguments: Arguments that are passed to a function by name, rather than by position.

Compatibility:

  • Version 2.0 is not compatible with version 1.0 in many ways.
  • If you are using version 1.0, you will need to make changes to your code in order to use version 2.0.

fix using float64 in gemm

05 Feb 02:48
Compare
Choose a tag to compare

Bugfix:

  • LinearAlgebra::gemm() - Fixed a bug that prevented using float64 data without specifying an output buffer

fix for OpenCL on PHP8.2

28 Jan 04:23
Compare
Choose a tag to compare

fix for OpenCL on PHP8.2

Support PHP8.2.

28 Jan 01:25
Compare
Choose a tag to compare

Support PHP8.2.

Functionality has not changed.

Fix search OpenCL device by type

06 Aug 01:24
Compare
Choose a tag to compare

Fixed a typo in the OpenCL device search option in MatrixOperator::laAccelerated()

Usage is as follows:

  • The 'device' option contains two numbers separated by a comma. The first is the platform, the second is the device. For example,['device'=>'0,1'].
  • The 'deviceType' option contains one string of device type. Specify 'CPU' or 'GPU'. For example, ['deviceType'=>'GPU'].
  • Both of these options cannot be specified at the same time.