## Unit0.3.1Hardware requirements

While you may learn quite a bit by simply watching the videos and reading these materials, real comprehension comes from getting your hands dirty with the programming assignments.

We assume that you have access to a computer with a specific instruction set: AVX2. In our discussions, we will assume you have access to a computer with an Intel Haswell processor or a more recent processor. More precisesly, you will need access to one of the following "x86_64" processors:

• Intel architectures: Haswell, Broadwell, Skylake, Kaby Lake, Coffee Lake.

• AMD architectures: Ryzen/Epyc

How do can you tell what processor is in your computer?

Through one of these means, you will determine the model name of your processor. In our case, we determined the model name

Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz


After a bit of digging, we discovered that i7-8850H belongs to the "Coffee Lake" family of processors: https://ark.intel.com/content/www/us/en/ark/products/134899/intel-core-i7-8850h-processor-9m-cache-up-to-4-30-ghz.html. With a bit more digging, we find out that it supports AVX2 instructions.

###### Remark0.3.1.

As pointed out by a learner, the following commands give a list of the features of your CPU if you are running Linux:

sysctl -a | grep machdep.cpu.features
sysctl -a | grep machdep.cpu.leaf7_features


If one of these yields a list that includes AVX2, you're set. On my mac, the second command works did the trick.