Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <A12FB85F-3634-4557-ACDA-18E23488CE8F@gmail.com>
Date: Sat, 18 Apr 2015 11:01:56 +0800
From: Lei Zhang <zhanglei.april@...il.com>
To: john-dev@...ts.openwall.com
Subject: AVX512 support detection

Hi,

I was trying to test the AVX512 intrinsics in JtR on Intel SDE, and ended up finding that there's not a single macro named "__AVX512__" that can detect the underlying support for AVX512. Actually there're a couple of macros to detect different subsets of AVX512, respectively. 

As a brief reference, they're:
__AVX512BW__	- Byte and Word instructions
__AVX512CD__	- Conflict Detection instructions
__AVX512DQ__	- Doubleword and Quadword instructions
__AVX512ER__	- Exponential and Reciprocal instructions
__AVX512F__		- Foundation instructions
__AVX512PF__	- Prefetch instructions
__AVX512VL__	- Vector Length extensions

Most of the intrinsics used in JtR fall on the AVX512F and AVX512BW subsets. AVX512F is almost the same as MIC's KNC instruction set, covering most of the commonly used intrinsics. And AVX512BW contains those integer-operating intrinsics suffixed with epi8/epi16, for which we have to implement workarounds on MIC. 

So the macro "__AVX512__" currently used in JtR won't work at all. I'll refactor the code first, and see how it works on SDE.


Lei

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.