Verification of Instruction Set Extensions

Introduction

MemSQL can make use of AVX2 instructions on Intel and Intel-compatible processors, both for improved performance for columnstore query processing, and to enable use of certain vector functions. You can check your system to see if it is supported if you are not sure.

Verifying AVX2 Instruction Set Support

If you want to verify if your system supports AVX2, check your processor specifications from the manufacturer or run cat /proc/cpuinfo | grep avx2 to see if “avx2” (in lower case) is listed. Some VM installations, including cloud installations, may not show “avx2” in cpuinfo output but they still support AVX2. If you want to definitively check if a node on your system supports AVX2, after installing MemSQL on that node, you can run a utility called check_avx2 that is part of MemSQL.

For example, to locate it, you can do:

cd /
sudo find . -name check_avx2 -print

You may see output like:

./var/lib/memsql/master-3306-MI7abac029/lib/check_avx2
./var/lib/memsql/leaf-3308-MIae506559/lib/check_avx2
./var/lib/memsql/leaf-3307-MIddea06c6/lib/check_avx2

The unique serial numbers and port numbers in this output may differ. Run any one of these check_avx2 executables (they are all the same). For example:

/var/lib/memsql/master-3306-MI7abac029/lib/check_avx2

If it produces no output at all and does not produce an error, then the processor definitely supports AVX2. If it produces an error or otherwise fails, AVX2 is not supported.

Was this article useful?