SVT-HEVC icon indicating copy to clipboard operation
SVT-HEVC copied to clipboard

AVX512_changes

Open deeptiag1 opened this issue 4 years ago • 6 comments

Signed-off-by: deeptiag1 [email protected]

deeptiag1 avatar Feb 19 '20 18:02 deeptiag1

@deeptiag1, you may want to check your git config, it seems you might have misspelled your email, unless your email domain is intel.comm

1480c1 avatar Feb 19 '20 19:02 1480c1

Hi @deeptiag1 , since AVX512 code doesn't execute when running encoder, our CI can't validate your code. Could you let us know what tests you did and the result? Thank you very much for your contribution. Could you also give a better title to this PR which be more specific. Thank you.

tianjunwork avatar Feb 19 '20 22:02 tianjunwork

Hi @tianjunwork, Enable the AVX512 flag in Ebdefinitions and then run the same test as one would run for any build. Let me know if all test pass.

deeptiag1 avatar Feb 20 '20 02:02 deeptiag1

From @hassount 3/17/2020:

From the results below, it seems that we need to disable the optimization for the LumaInterpolationFilterOneDOutRawHorizontal_AVX512 kernel and make sure that the documentation contains a clear reference to the gcc version requirement when vnni is on, then I don’t see any blockers to this PR moving forward assuming functional testing is passing._

The current PR shows:

#ifdef VNNI_SUPPORT #ifndef NON_AVX512_SUPPORT #define LumaInterpolationFilterOneDOutRawHorizontalLumaInterpolationFilterOneDOutRawHorizontal_AVX512 #else #define LumaInterpolationFilterOneDOutRawHorizontalLumaInterpolationFilterOneDOutRawHorizontal_SSSE3 #endif

But isn't VNNI a subset of AVX512 - Are all combinations of the VNNI_SUPPORT and AVX512_SUPPORT defines possible?

Also there doesn't seem to be a mention of the gcc requirements for compiling the VNNI specific code anywhere in the PR

intelmark avatar Mar 27 '20 17:03 intelmark

#define vnni in EbDefinitions enable vnni code committed in this PR.

Perf Data; Encoder mode :0 reference_avx512 : branch vnni_changes_1 @ d92a7c4 vnni_avx512: reference_avx512 + VNNI_SUPPORT + LumaInterpolationFilterOneDOutRawHorizontal_SSSE3 speed reference_avx512 | 0.95fps vnni_avx512 | 0.96fps Speed gain: 1%

Encoder mode :0 reference_avx2 : branch vnni_changes_1 @ d92a7c4 + NON_AVX512_SUPPORT vnni_avx2: reference_avx2 + VNNI_SUPPORT + LumaInterpolationFilterOneDOutRawHorizontal_SSSE3 speed reference_avx2 | 0.96fps vnni_avx2 | 0.97fps Speed gain: 1%

deeptiag1 avatar Apr 02 '20 17:04 deeptiag1

@deeptiag1 Regarding the performance data - great to see the speed up, but what size video and is there a command line that was used?

intelmark avatar Apr 02 '20 19:04 intelmark