ekrich / sblas

BLAS (Basic Linear Algebra Subprograms) for Scala Native

GitHub

SBLAS - Scala Native BLAS

Build Status

This library implements BLAS (Basic Linear Algebra Subsystems) in the form of CBLAS for the Scala Native platform. Scala Native is a unique platform that marries the high level language of Scala but compiles to native code with a lightweight managed runtime which includes a state of the art garbage collector. The combination allows for great programming and the ability to use high performance C language libraries like CBLAS.

Scala Native uses the Scala compiler to produce NIR (Native Intermediate Representation)] that is optimized and then converted to LLVM IR. Finally LLVM code is optimized and compiled by Clang to produce a native executable.

Getting started

Maven Central

Follow the Getting Started instructions for Scala Native if you are not already setup.

Add the following dependency in your sbt build file.

libraryDependencies += "org.ekrich" %%% "sblas" % "x.y.z"

To use in sbt, replace x.y.z with the version from Maven Central badge above. All available versions can be seen at the Maven Repository.

For Linux/Ubuntu you need to install ATLAS for CBLAS support.

$ sudo apt-get install libatlas-base-dev

For macOS, CBLAS is pre-installed as part of the Accelerate Framework.

There may be other options that supply BLAS for your platform as well. In general we are needing libcblas to be available on the system.

Usage and Help

scaladoc Join chat https://gitter.im/ekrich/sblas

The Scaladoc above will hopefully improve with time. Some useful links are as follows which are also in the LICENSE.md file:

Wikipedia Website:

Netlib Website:

Apple Website:

Intel Website:

IBM Website:

Versions

Release 0.1.1 - (2019-05-01)