Arrayfire Versions Save

ArrayFire: a general purpose GPU library.

v3.3.2

8 years ago

v3.3.2

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.3.2.tar.bz2

Improvements

  • Family of [Sort](ref sort_mat) functions now support higher order dimensions.
  • Improved performance of batched sort on dim 0 for all [Sort](ref sort_mat) functions.
  • [Median](ref stat_func_median) now also supports higher order dimensions.

Bug Fixes

Build

Documentation

  • Fixed documentation for \ref af::replace().
  • Fixed images in [Using on OSX](ref using_on_osx) page.

Installer

  • Linux x64 installers will now be compiled with GCC 4.9.2.
  • OSX installer gives better error messages on brew failures and now includes link to Fixing OS X Installer Failures for brew installation failures.

v3.3.1

8 years ago

v3.3.1

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.3.1.tar.bz2

Bug Fixes

  • Fixes to \ref af::array::device()
    • CPU Backend: evaluate arrays before returning pointer with asynchronous calls in CPU backend.
    • OpenCL Backend: fix segfaults when requested for device pointers on empty arrays.
  • Fixed \ref af::array::operator%() from using rem to mod.
  • Fixed array destruction when backends are switched in Unified API.
  • Fixed indexing after \ref af::moddims() is called.
  • Fixes FFT calls for CUDA and OpenCL backends when used on multiple devices.
  • Fixed unresolved external for some functions from \ref af::array::array_proxy class.

Build

  • CMake compiles files in alphabetical order.
  • CMake fixes for BLAS and LAPACK on some Linux distributions.

Improvements

Documentation

  • Reorganized, cleaner README file.
  • Replaced non-free lena image in assets with free-to-distribute lena image.

v3.3.0

8 years ago

v3.3.0

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.3.0.tar.bz2

Major Updates

  • 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.
  • Integration with external OpenCL projects.

Features

  • \ref af::getActiveBackend(): Returns the current backend being used.
  • Scatter plot added to graphics.
  • \ref af::transform() now supports perspective transformation matrices.
  • \ref af::infoString(): Returns af::info() as a string.
  • \ref af::printMemInfo(): Print a table showing information about buffer from the memory manager
    • The \ref AF_MEM_INFO macro prints numbers and total sizes of all buffers (requires including af/macros.h)
  • \ref af::allocHost(): Allocates memory on host.
  • \ref af::freeHost(): Frees host side memory allocated by arrayfire.
  • OpenCL functions can now use CPU implementation.
    • Currently limited to Unified Memory devices (CPU and On-board Graphics).
    • Functions: af::matmul() and all [LAPACK](ref linalg_mat) functions.
    • Takes advantage of optimized libraries such as MKL without doing memory copies.
    • Use the environment variable AF_OPENCL_CPU_OFFLOAD=1 to take advantage of this feature.
  • Functions specific to OpenCL backend.
    • \ref afcl::addDevice(): Adds an external device and context to ArrayFire's device manager.
    • \ref afcl::deleteDevice(): Removes an external device and context from ArrayFire's device manager.
    • \ref afcl::setDevice(): Sets an external device and context from ArrayFire's device manager.
    • \ref afcl::getDeviceType(): Gets the device type of the current device.
    • \ref afcl::getPlatform(): Gets the platform of the current device.
  • \ref af::createStridedArray() allows array creation user-defined strides and device pointer.
  • Expose functions that provide information about memory layout of Arrays.
    • \ref af::getStrides(): Gets the strides for each dimension of the array.
    • \ref af::getOffset(): Gets the offsets for each dimension of the array.
    • \ref af::getRawPtr(): Gets raw pointer to the location of the array on device.
    • \ref af::isLinear(): Returns true if all elements in the array are contiguous.
    • \ref af::isOwner(): Returns true if the array owns the raw pointer, false if it is a sub-array.
    • \ref af::getStrides(): Gets the strides of the array.
    • \ref af::getStrides(): Gets the strides of the array.
  • \ref af::getDeviceId(): Gets the device id on which the array resides.
  • \ref af::isImageIOAvailable(): Returns true if ArrayFire was compiled with Freeimage enabled
  • \ref af::isLAPACKAvailable(): Returns true if ArrayFire was compiled with LAPACK functions enabled

Bug Fixes

Improvements

  • Optionally offload BLAS and LAPACK functions to CPU implementations to improve performance.
  • Performance improvements to the memory manager.
  • Error messages are now more detailed.
  • Improved sorted order for OpenCL devices.
  • JIT heuristics can now be tweaked using environment variables. See [Environment Variables](ref configuring_environment) tutorial.
  • Add BUILD_<BACKEND> options to examples and tests to toggle backends when compiling independently.

Examples

  • New visualization [example simulating gravity](ref graphics/gravity_sim.cpp).

Build

  • Support for Intel icc compiler
  • Support to compile with Intel MKL as a BLAS and LAPACK provider
  • Tests are now available for building as standalone (like examples)
  • Tests can now be built as a single file for each backend
  • Better handling of NONFREE build options
  • Searching for GLEW in CMake default paths
  • Fixes for compiling with MKL on OSX.

Installers

  • Improvements to OSX Installer
    • CMake config files are now installed with libraries
    • Independent options for installing examples and documentation components

Deprecations

  • af_lock_device_arr is now deprecated to be removed in v4.0.0. Use \ref af_lock_array() instead.
  • af_unlock_device_arr is now deprecated to be removed in v4.0.0. use \ref af_unlock_array() instead.

Documentation

  • Fixes to documentation for \ref matchTemplate().
  • Improved documentation for deviceInfo.
  • Fixes to documentation for \ref exp().

Known Issues

v3.3.alpha

8 years ago

v3.2.2

8 years ago

Release Notes {#releasenotes}

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.2.2.tar.bz2

v3.2.2

Bug Fixes

  • Fixed memory leak in CUDA Random number generators
  • Fixed bug in af::select() and af::replace() tests
  • Fixed exception thrown when printing empty arrays with af::print()
  • Fixed bug in CPU random number generation. Changed the generator to mt19937
  • Fixed exception handling (internal)
    • Exceptions now show function, short file name and line number
    • Added AF_RETURN_ERROR macro to handle returning errors.
    • Removed THROW macro, and renamed AF_THROW_MSG to AF_THROW_ERR.
  • Fixed bug in \ref af::identity() that may have affected CUDA Compute 5.2 cards

Build

  • Added a MIN_BUILD_TIME option to build with minimum optimization compiler flags resulting in faster compile times
  • Fixed issue in CBLAS detection by CMake
  • Fixed tests failing for builds without optional components FreeImage and LAPACK
  • Added a test for unified backend
  • Only info and backend tests are now built for unified backend
  • Sort tests execution alphabetically
  • Fixed compilation flags and errors in tests and examples
  • Moved AF_REVISION and AF_COMPILER_STR into src/backend. This is because as revision is updated with every commit, entire ArrayFire would have to be rebuilt in the old code.
    • v3.3 will add a af_get_revision() function to get the revision string.
  • Clean up examples
    • Remove getchar for Windows (this will be handled by the installer)
    • Other miscellaneous code cleanup
    • Fixed bug in [plot3.cpp](ref graphics/plot3.cpp) example
  • Rename clBLAS/clFFT external project suffix from external -> ext
  • Add OpenBLAS as a lapack/lapacke alternative

Improvements

  • Added \ref AF_MEM_INFO macro to print memory info from ArrayFire's memory manager (cross issue)
  • Added additional paths for searching for libaf* for Unified backend on unix-style OS.
    • Note: This still requires dependencies such as forge, CUDA, NVVM etc to be in LD_LIBRARY_PATH as described in [Unified Backend](ref unifiedbackend)
  • Create streams for devices only when required in CUDA Backend

Documentation

  • Hide scrollbars appearing for pre and code styles
  • Fix documentation for af::replace
  • Add code sample for converting the output of af::getAvailableBackends() into bools
  • Minor fixes in documentation

v3.2.1

8 years ago

Release Notes {#releasenotes}

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.2.1.tar.bz2

v3.2.1

Bug Fixes

  • Fixed bug in homography()
  • Fixed bug in behavior of af::array::device()
  • Fixed bug when indexing with span along trailing dimension
  • Fixed bug when indexing in [GFor](ref gfor)
  • Fixed bug in CPU information fetching
  • Fixed compilation bug in unified backend caused by missing link library
  • Add missing symbol for af_draw_surface()

Build

  • Tests can now be used as a standalone project
    • Tests can now be built using pre-compiled libraries
    • Similar to how the examples are built
  • The install target now installs the examples source irrespective of the BUILD_EXAMPLES value
    • Examples are not built if BUILD_EXAMPLES is off

Documentation

  • HTML documentation is now built and installed in docs/html
  • Added documentation for \ref af::seq class
  • Updated Matrix Manipulation tutorial
  • Examples list is now generated by CMake
    • Examples are now listed as dir/example.cpp
  • Removed dummy groups used for indexing documentation (affcted doxygen < 1.8.9)

v3.2.0

8 years ago

Release Notes

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.2.0.tar.bz2

Major Updates

  • Added Unified backend
    • Allows switching backends at runtime
    • Read [Unified Backend](ref unifiedbackend) for more.
  • Support for 16-bit integers (\ref s16 and \ref u16)
    • All functions that support 32-bit interger types (\ref s32, \ref u32), now also support 16-bit interger types

Function Additions

  • Unified Backend
    • \ref setBackend() - Sets a backend as active
    • \ref getBackendCount() - Gets the number of backends available for use
    • \ref getAvailableBackends() - Returns information about available backends
    • \ref getBackendId() - Gets the backend enum for an array
  • Vision
    • \ref homography() - Homography estimation
    • \ref gloh() - GLOH Descriptor for SIFT
  • Image Processing
    • \ref loadImageNative() - Load an image as native data without modification
    • \ref saveImageNative() - Save an image without modifying data or type
  • Graphics
    • \ref af::Window::plot3() - 3-dimensional line plot
    • \ref af::Window::surface() - 3-dimensional curve plot
  • Indexing
    • \ref af_create_indexers()
    • \ref af_set_array_indexer()
    • \ref af_set_seq_indexer()
    • \ref af_set_seq_param_indexer()
    • \ref af_release_indexers()
  • CUDA Backend Specific
    • \ref setNativeId() - Set the CUDA device with given native id as active
      • ArrayFire uses a modified order for devices. The native id for a device can be retreived using nvidia-smi
  • OpenCL Backend Specific
    • \ref setDeviceId() - Set the OpenCL device using the clDeviceId

Other Improvements

  • Added \ref c32 and \ref c64 support for \ref isNaN(), \ref isInf() and \ref iszero()
  • Added CPU information for x86 and x86_64 architectures in CPU backend's \ref info()
  • Batch support for \ref approx1() and \ref approx2()
    • Now can be used with gfor as well
  • Added \ref s64 and \ref u64 support to:
    • \ref sort() (along with sort index and sort by key)
    • \ref setUnique(), \ref setUnion(), \ref setIntersect()
    • \ref convolve() and \ref fftConvolve()
    • \ref histogram() and \ref histEqual()
    • \ref lookup()
    • \ref mean()
  • Added \ref AF_MSG macro

Build Improvements

  • Submodules update is now automatically called if not cloned recursively
  • Fixes for compilation on Visual Studio 2015
  • Option to use fallback to CPU LAPACK for linear algebra functions in case of CUDA 6.5 or older versions.

Bug Fixes

Documentation Updates

  • Improved tutorials documentation
    • More detailed Using on [Linux](ref using_on_windows), [OSX](ref using_on_windows), [Windows](ref using_on_windows) pages.
  • Added return type information for functions that return different type arrays

New Examples

  • Graphics
    • [Plot3](ref plot3.cpp)
    • [Surface](ref surface.cpp)
  • [Shallow Water Equation](ref swe.cpp)
  • [Basic](ref basic.cpp) as a Unified backend example

Installers

  • All installers now include the Unified backend and corresponding CMake files
  • Visual Studio projects include Unified in the Platform Configurations
  • Added installer for Jetson TX1
  • SIFT and GLOH do not ship with the installers as SIFT is protected by patents that do not allow commercial distribution without licensing.

v3.1.3

8 years ago

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.1.3.tar.bz2

Bug Fixes

  • Fixed bugs in various OpenCL kernels without offset additions
  • Remove ARCH_32 and ARCH_64 flags
  • Fix missing symbols when freeimage is not found
  • Use CUDA driver version for Windows
  • Improvements to SIFT
  • Fixed memory leak in median
  • Fixes for Windows compilation when not using MKL #1047
  • Fixed for building without LAPACK

Other

  • Documentation: Fixed documentation for select and replace
  • Documentation: Fixed documentation for af_isnan

v3.1.2

8 years ago

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.1.2.tar.bz2

Bug Fixes

  • Fixed bug in assign that was causing test to fail
  • Fixed bug in convolve. Frequency condition now depends on kernel size only
  • Fixed bug in indexed reductions for complex type in OpenCL backend
  • Fixed bug in kernel name generation in ireduce for OpenCL backend
  • Fixed non-linear to linear indices in ireduce
  • Fixed bug in reductions for small arrays
  • Fixed bug in histogram for indexed arrays
  • Fixed compiler error CPUID for non-compliant devices
  • Fixed failing tests on i386 platforms
  • Add missing AFAPI

Other

  • Documentation: Added missing examples and other corrections
  • Documentation: Fixed warnings in documentation building
  • Installers: Send error messages to log file in OSX Installer

v3.1.1

8 years ago

The source code with submodules can be downloaded directly from the following link: http://arrayfire.com/arrayfire_source/arrayfire-full-3.1.1.tar.bz2

Installers

  • CUDA backend now depends on CUDA 7.5 toolkit
  • OpenCL backend now require OpenCL 1.2 or greater

Bug Fixes

  • Fixed bug in reductions after indexing
  • Fixed bug in indexing when using reverse indices

Build

  • cmake now includes PKG_CONFIG in the search path for CBLAS and LAPACKE libraries
  • heston_model.cpp example now builds with the default ArrayFire cmake files after installation

Other