]> git.sesse.net Git - stockfish/blobdiff - src/Makefile
Add support for VNNI
[stockfish] / src / Makefile
index e82b066b630c0688923f7de5066286566021356e..0804cdd51a9dcfe7bafc5feb15b11a4ed0455c4f 100644 (file)
@@ -73,6 +73,7 @@ endif
 # avx2 = yes/no       --- -mavx2           --- Use Intel Advanced Vector Extensions 2
 # pext = yes/no       --- -DUSE_PEXT       --- Use pext x86_64 asm-instruction
 # avx512 = yes/no     --- -mavx512bw       --- Use Intel Advanced Vector Extensions 512
+# vnni = yes/no       --- -mavx512vnni     --- Use Intel Vector Neural Network Instructions 512
 # neon = yes/no       --- -DUSE_NEON       --- Use ARM SIMD architecture
 #
 # Note that Makefile is space sensitive, so when adding new architectures
@@ -93,6 +94,7 @@ sse41 = no
 avx2 = no
 pext = no
 avx512 = no
+vnni = no
 neon = no
 ARCH = x86-64-modern
 
@@ -190,6 +192,19 @@ ifeq ($(ARCH),x86-64-avx512)
        avx512 = yes
 endif
 
+ifeq ($(ARCH),x86-64-vnni)
+       arch = x86_64
+       prefetch = yes
+       popcnt = yes
+       sse = yes
+       ssse3 = yes
+       sse41 = yes
+       avx2 = yes
+       pext = yes
+       avx512 = yes
+       vnni = yes
+endif
+
 ifeq ($(ARCH),armv7)
        arch = armv7
        prefetch = yes
@@ -420,6 +435,13 @@ ifeq ($(avx512),yes)
        endif
 endif
 
+ifeq ($(vnni),yes)
+       CXXFLAGS += -DUSE_VNNI
+       ifeq ($(comp),$(filter $(comp),gcc clang mingw))
+               CXXFLAGS += -mavx512vnni -mavx512dq -mavx512vl
+       endif
+endif
+
 ifeq ($(sse41),yes)
        CXXFLAGS += -DUSE_SSE41
        ifeq ($(comp),$(filter $(comp),gcc clang mingw))
@@ -522,6 +544,7 @@ help:
        @echo ""
        @echo "Supported archs:"
        @echo ""
+       @echo "x86-64-vnni             > x86 64-bit with vnni support"
        @echo "x86-64-avx512           > x86 64-bit with avx512 support"
        @echo "x86-64-bmi2             > x86 64-bit with bmi2 support"
        @echo "x86-64-avx2             > x86 64-bit with avx2 support"
@@ -640,6 +663,7 @@ config-sanity:
        @echo "avx2: '$(avx2)'"
        @echo "pext: '$(pext)'"
        @echo "avx512: '$(avx512)'"
+       @echo "vnni: '$(vnni)'"
        @echo "neon: '$(neon)'"
        @echo ""
        @echo "Flags:"
@@ -664,6 +688,7 @@ config-sanity:
        @test "$(avx2)" = "yes" || test "$(avx2)" = "no"
        @test "$(pext)" = "yes" || test "$(pext)" = "no"
        @test "$(avx512)" = "yes" || test "$(avx512)" = "no"
+       @test "$(vnni)" = "yes" || test "$(vnni)" = "no"
        @test "$(neon)" = "yes" || test "$(neon)" = "no"
        @test "$(comp)" = "gcc" || test "$(comp)" = "icc" || test "$(comp)" = "mingw" || test "$(comp)" = "clang"