Skip to content

Releases: arrayfire/arrayfire-rust

Fix Release for v3.4

Choose a tag to compare

@9prady9 9prady9 released this 26 Feb 07:34

v3.4.2

Features

  • info_string - Returns the library meta-information as std::string::String.
  • Added arithmetic(+, -, *, /, %, &, |, ^, <<, >>) traits implementations for all input combinations of Array and &Array types.
  • Added a batch(boolean) parameter for logical operation functions - this breaks the API and please change your code where you call these functions accordingly. We are sorry for the inconvenience caused.
  • get_revision - Returns ArrayFire Revision (commit) information of the library as a string.
  • device_info - Returns a quadruple of Strings indicating the name, platform, toolkit name and computer version of the currently active device.

Fixes

Community contributors for this release

Thank you.

Fix Release for v3.4

Choose a tag to compare

@9prady9 9prady9 released this 11 Jan 06:41

v3.4.1

Features

  • Neg trait implementation for object type Array
  • New set of following functions that lets the user create an array based on dimensions and a particular DType. Earlier to this addition, data generation functions deduced the target array type using generic type.
    • constant_t
    • range_t
    • iota_t
    • identity_t

Examples

  • A new graphics example that illustrates acoustic wave propagation.

Fixes

Community contributors for this release

Thank you.

Rust wrapper for ArrayFire 3.4.0

Choose a tag to compare

@9prady9 9prady9 released this 15 Sep 08:34

Features

  • Sparse Matrix and BLAS
    • Support for CSR and COO storage types.
    • Sparse-Dense Matrix Multiplication and Matrix-Vector Multiplication as a
      part of af::matmul() using CSR format for sparse.
    • Conversion to and from dense matrix to CSR and COO storage types.
  • Faster JIT
    • Performance improvements for CUDA and OpenCL JIT functions.
    • Support for evaluating multiple outputs in a single kernel. See eval!() macro or function eval_multiple().
  • Random Number Generation
    • A random engine object to handle setting the random engine type and seed for random number generator engines.
    • Supported engine types are:
  • Graphics
    • Using Forge v0.9.0
    • New Functions to render Vector Fields
      • Window::draw_vector_field2()
      • Window::draw_vector_field3()
      • Window::draw_vector_field()
    • Multiple overlays on the same window are now possible.
      • Overlays support for same type of object (2D/3D)
      • Supported by Window::draw_plot[2|3](), Window::draw_hist(), Window::draw_surface(),
        Window::draw_vector_field[2|3]().
    • New API to set axes limits for graphs.
      • Draw calls do not automatically compute the limits. This is now under user control.
      • Window::set_axes_limits_[2d|3d|compute]() can be used to set axes limits automatically or manually.
      • Window::set_axes_titles() can be used to set axes titles.
    • New API for plot and scatter:
      • Window::draw_plot() and Window::draw_scatter() now can handle 2D and 3D and determine appropriate order.
      • draw_plot()
      • draw_plot2()
      • draw_plot3()
      • draw_scatter()
      • draw_scatter2()
      • draw_scatter3()
  • New interpolation types to enum InteropType that apply to following functions
    • resize()
    • transform()
    • approx1()
    • approx2()
  • Support for complex mathematical functions
    • Add complex support for trignometry functions, sqrt(), log().
  • medfilt1(): Median filter for 1-d signals
  • Generalized scan functions: scan_func_scan and scan_func_scanbykey
    • Now supports inclusive or exclusive scans
    • Supports binary operations defined by BinaryOp.
  • Image Moments functions
  • Add get_size_of() function for dtype

For other information regarding bug fixes, compile time improvements and known issues in ArrayFire upstream, please visit the
ArrayFire v3.4.0 Release Notes URL.

Broken/Replaced API

  • The behaviour of Window::draw_plot has been to changed to handle generic plot rendering, 2D or 3D line plots. New functions Window::draw_plot[2|3] are added for dimension specific plot rendering.
  • The behaviour of Window::draw_scatter has been to changed to handle generic plot rendering, 2D or 3D line plots. New functions Window::draw_scatter[2|3] are added for dimension specific plot rendering.

Fix Release for v3.3

Choose a tag to compare

@9prady9 9prady9 released this 08 Jun 06:35

v3.3.1

Fixes

  • Program crashes on release builds reported here has been fixed.
  • Dependent crates(libc, num, rustc-serialize) versions have been bumped up.

Community contributors for this release

Thank you.

Rust wrapper for ArrayFire 3.3

Choose a tag to compare

@9prady9 9prady9 released this 20 May 17:27

Major Updates

  • API breaking change is that error handling mechanism of returning Result objects from functions has been replaced with a callback style error handling. By default, we provide an error handler that panics with an appropriate message when a given function call or operation fails. If the users chooses to, they can also implement the error handler by themselves and call register_error_handler that lets the user set the function that has to handle the error values returned by ArrayFire FFI calls.
  • enum Aftype has been refactored to DType
  • CPU backend supports aysnchronous execution.
  • Performance improvements to OpenCL BLAS and FFT functions.
  • Improved performance of memory manager.
  • Improvements to visualization functions.
  • Improved sorted order for OpenCL devices.

New Functions and Features:

  • Scatter plot added to graphics functionality
  • New function get_active_backend that gives us the current active backend.
  • Improved Array Creation/Generation API
  • Added mem_info macro to print GPU memory usage information to standard output.
  • Added af_print macro.
  • Added traits clone and partialeq to all enums.
  • Added traits partialeq and debug to type Dim4.
  • transform() now supports perspective transformation matrices.
  • Type Array now has the implementations for the compound assignment operations traits. These traits are auto-enabled only if you are using Rust >= 1.8.0 since those traits are stabilized from that particular version.
  • A few new member functions are added to object Array.
  • Following are the other miscellaneous functions added to the library
    • is_lapack_available - Returns true if ArrayFire was compiled with LAPACK functions enabled
    • is_imageio_available - Returns true if ArrayFire was compiled with Freeimage enabled
    • New member function for Array Object, get_device_id, that gets the device id on which the array resides.

Following are the community contributors for this release.

Thank you guys!

Rust wrapper for ArrayFire 3.2

Choose a tag to compare

@9prady9 9prady9 released this 10 Dec 22:26
  • Feature parity with ArrayFire 3.2 libs except any CUDA/OpenCL pinned memory related functions.

The wrapper has known issue with ArrayFire v3.2.0 libs due to a single missing symbol af_draw_surface from the native library. Please use ArrayFire v3.2.1 fix release to fix the problem. Any version > 3.2.1 should also work fine.