Stop Thinking, Just Do!

Sungsoo Kim's Blog

Advanced Vector Extension

tagsTags

18 July 2015


Advanced Vector Extension

고급 벡터 확장(Advanced Vector Extensions,약어:AVX)은 2008년 4월 춘계 인텔 개발자 포럼에서 발표된 x86 명령어 집합의 확장으로 SIMD명령어 집합중의 하나이다. SIMD 레지스터의 폭이 128비트에서 256비트로 확장돼서, 최대 2배까지 부동소수점 연산 처리 능력이 향상된다. 또한 기존의 2 피연산자 구조에서 3 피연산자 구조로 변경됨으로 인하여 프로그래밍이 더 효율적이고 성능이 더 뛰어나게 된다. 인텔은 2010년 1월에 발표한 샌디 브리지 마이크로아키텍처기반 프로세서부터 지원을 시작했으며 AMD는 불도저(Bulldozer) 프로세서에서 선보일 예정이다. AVX에 관련된 백서가 인텔 소프트웨어 네트워크에 있으며 또한 온라인상에 참조 매뉴얼이 있다.

특징

개요

  • 부동소수점 계산이 많은 작업에 유용
    • 멀티미디어 처리
    • 3D 모델링
    • 과학 모의실험
    • 재무 분석
  • 최대 256비트 넓이의 벡터 부동소수점 데이터
  • 2 피연산자 명령어구조에서 3 피연산자 명령어 구조지원
  • 전력 효율성이 뛰어나고 유휴 소비전력이 미미함
  • 더 폭넓은 벡터의 지원으로 이전과 비교 최대 2배 높은 FLOPS
  • 스레드와 코어들 그리고 상호 연결의 증가에 따라 성능 향상
  • 프로그래밍의 유연성
  • AVX로부터 기존과 새로운 애플리케이션의 성능 향상

명령어

  • 200개 이상의 기존 인텔 SSE명령어들은 유연한 메모리 정렬과 분명한 소스 연산자를 처리하기 위해 갱신됨.
  • 100개 이내의 기존 인텔 SSE명령어들은 256비트 벡터를 지원하기 위해 갱신됨
  • 100개 이내의 새로운 명령어들
  • 살포(Broadcast), 치환(permute), 곱하기와 더하기가 합쳐진 명령어들
  • 4 연산자 명령어들은 다음을 포함 : 일반화된 셔플(shuffle), 그리고 변수들의 혼합

미래

  • 미래 확장성을 고려하여 설계
  • 256- 과 512비트 벡터 정수
  • 512- 와 1024비트 벡터 부동소수점

comments powered by Disqus