2011-10-20 5 views
3

Microsoft는 VS2010는 AVX 명령의 전체 세트를 지원 상태 :VS2010 SP1은 AVX 명령어 세트의 일부만 지원합니까?

VS2010의 릴리스에서는

http://blogs.msdn.com/b/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx ... , 모든 AVX 기능 및 지침 가 완전히이 고유하고 /arch:AVX를 통해 지원됩니다. ...

하지만 퓨즈 곱하기에 대한 내장 함수 내가 _mm256_fmadd_ps 기능을 사용할 필요가 있지만 "immintrin.h"헤더에없는 운영

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_bk_avx_fma.htm#intref_bk_avx_fma

추가 찾을 수 없습니다. 나는 정말로 그것에 매달렸다.

답변

5

융합 - 곱하기 추가 내장 함수는 AVX에 포함되어 있지 않습니다. 인텔은 나중에 AVX에 대한 개정에서 그것을 제거했습니다. 따라서 FMA는 별도의 명령어 세트입니다.

더 나쁜 것은 FMA3 (Intel - Haswell), FMA4 (AMD - 불도저) 중 두 가지가 있습니다.

VS2010 SP1은 AMD의 FMA4 버전을 지원합니다.

어느 프로세서 라인도 아직 출시되지 않았습니다 (불도저의 서버 부분 인 AMD - Interlagos 제외).

인텔 FMA 내장 함수는 FMA3 용입니다. 프로세서가 아직 구현되어 있지 않으므로 아직 사용/테스트 할 수 없습니다.

+0

아,이 명령이 AVX의 일부가 아닌지 몰랐습니다. 현재 하드웨어에서 너무 많이 사용하고 싶습니다. :) 그래, 대신 _mm256_mul_ps + _mm256_add_ps를 사용합니다. 고맙습니다! – Mike

+0

당신은 더 많은 것을 원하는 유일한 사람이 아닙니다. :) AVX가 열리기까지 약 1 년 간 열심히 기다렸습니다. 그리고 지금 나는 FMA3, FMA4/XOP 및 AVX2를 간절히 기다리고 있습니다. XD – Mysticial

+0

FMA4는 원래 Intel의 것이었지만 개발 과정에서 FMA3으로 변경되었습니다. –