Deep Learning Math Kernel Research(Euler)

Experimental DNN math kernel based on C++11 and Intel intrinsic instructions.

System Requirements

Intel Core-X series processor with Intel (R) AVX-512 instruction set extensions
Intel Xeon Scalable processor (Skylake, Cascade Lake, ...)

Prerequisites

Linux x86_64 OS
CMake >= 3.0
Boost >= 1.58.0
Gflags >= 2.0
[ICC >= 18.0](https://software.intel.com/en-us/c-compilers)
(ICC >= 19.0 for Intel DL Boost (VNNI) support on Intel Cascade Lake)

Build

; ICC
source /opt/intel/compilers_and_libraries/linux/bin/compilervars.sh -arch intel64 -platform linux
mkdir -p build && cd build
cmake .. -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_CXX_FLAGS=-xCore-AVX512 -DWITH_TEST=ON
make -j
cd -

; Configuration of ICC 19 with VNNI support
cmake .. -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DCMAKE_CXX_FLAGS=-xCore-AVX512 -DWITH_TEST=ON -DWITH_VNNI=ON

Run Tests

cd /path/to/euler/root
./scripts/best_configs/vgg-n1-8180-1s.sh 2>&1 | grep tflops

Link to Euler

CFLAGS += /path/to/euler/include
#include "euler.hpp"
LDFLAGS += libel

License

Apache License Version 2.0.