github libxsmm/libxsmm 1.1
Version 1.1

latest releases: 1.old_kernelapi_rip, 1.libxsmm_dnn_rip, 1.eol...
8 years ago

This release is settling our frontend (C/C++ and Fortran interface) by bringing all language interfaces to an equal level in terms of functionality and usability, e.g. the Fortran interface has been brought up to support the prefetch signatures. In terms of language capabilities, the C++ and the Fortran interfaces both support overloaded functions (generic procedures) as well as a functor/call mechanism to help calling the backend code. Generic procedures are now available without compromising the availability of assumed shape array procedures. Moreover, the Fortran interface is fully settling with the C implementation, and therefore the previously needed glue code became superfluous.

Our JIT backend has left the "experimental" state due to being successfully deployed into several applications. Also, for our dispatch mechanism the known issue about possible hash key collisions has been resolved. Deploying the library into an unknown or inhomogeneous environment, a huge leap has been made by JITting code according to the CPUID flags. The latter is accompanied by the option to include static SSE code (which is not supported by the JIT backend) in the library while still being able to JIT for the best available code path.

The next milestone about intercepting existing calls to GEMM has been already addressed by settling the interface. The previously known as "simplified interface" has been remove, and binary compatible GEMM routines are now available. The latter allows to auto-dispatch for every GEMM call in an attempt to harvest higher performance for suitable matrix multiplications. Providing call interception is now within reach by an upcoming updated. In fact, statically linked GEMM can already be intercepted by e.g., adding -Wl,--wrap=dgemm_ -L/path/to/libxsmm -lxsmm to the link line.

Don't miss a new libxsmm release

NewReleases is sending notifications on new releases.