맨위로가기

고급 벡터 확장

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

고급 벡터 확장(AVX)은 인텔이 2008년에 처음 발표한 x86 명령어 집합의 SIMD 확장으로, SIMD 레지스터의 폭을 128비트에서 256비트로 확장했다. AVX는 16개의 YMM 레지스터를 사용하며, 세 개의 피연산자를 사용하는 새로운 코딩 방식을 도입하여 SSE 명령어의 개선과 SIMD 메모리 정렬 요구 사항 완화를 이루었다. AVX2는 2013년에 도입되어 정수 연산 지원을 추가했으며, AVX-512는 512비트 확장을 제공하여 4개의 피연산자와 opmask 레지스터, 자동 브로드캐스트, 압축된 메모리 주소 지정 모드 등을 지원한다. AVX10은 AVX-512의 문제점을 해결하기 위해 2023년에 발표된 새로운 명령어 집합으로, AVX, AVX2, AVX-512는 다양한 운영 체제에서 지원되며, 멀티미디어, 과학, 금융, 암호화 등 다양한 응용 분야에서 활용된다. AVX 명령어는 전력 소비가 높아 일부 프로세서에서 클럭 속도를 낮추는 다운클럭킹을 유발할 수 있다.

2. 역사

고급 벡터 확장(AVX)은 2008년 인텔이 처음 발표했으며, 2011년 샌디브릿지 마이크로아키텍처에서 처음 구현되었다. 이후 AVX2 (Haswell New Instructions), AVX-512 등 지속적인 확장을 통해 성능 향상을 이루어왔다.

2. 1. AVX (AVX1)

AVX는 2011년 인텔 샌디브릿지 프로세서와 AMD 불도저 프로세서에 처음 도입되었다.[5] 128비트 XMM 레지스터를 256비트 YMM 레지스터로 확장하여 SIMD 연산 성능을 향상시켰다.[5] VEX 코딩 방식을 도입하여 명령어 형식을 확장하고, 메모리 정렬 요구사항을 완화했다.[5]

AVX는 16개의 YMM 레지스터를 사용하며, 각 YMM 레지스터는 다음을 포함하고 동시에 연산을 수행할 수 있다.[5]

  • 8개의 32비트 단정밀도 부동 소수점 숫자
  • 4개의 64비트 배정밀도 부동 소수점 숫자


SIMD 레지스터의 너비는 128비트에서 256비트로 증가되었으며, x86-64 모드에서는 XMM0–XMM15에서 YMM0–YMM15로 이름이 변경되었다.[5] 레거시 SSE 명령어는 VEX 접두사를 통해 계속 활용되어 YMM 레지스터의 하위 128비트에서 작동할 수 있다.[5]

AVX, SSE 및 AVX-512 레지스터 비교
AVX-512 (ZMM0-ZMM31)AVX (YMM0-YMM15)SSE (XMM0-XMM15)
ZMM0YMM0XMM0
ZMM1YMM1XMM1
ZMM2YMM2XMM2
ZMM3YMM3XMM3
ZMM4YMM4XMM4
ZMM5YMM5XMM5
ZMM6YMM6XMM6
ZMM7YMM7XMM7
ZMM8YMM8XMM8
ZMM9YMM9XMM9
ZMM10YMM10XMM10
ZMM11YMM11XMM11
ZMM12YMM12XMM12
ZMM13YMM13XMM13
ZMM14YMM14XMM14
ZMM15YMM15XMM15
ZMM16YMM16XMM16
ZMM17YMM17XMM17
ZMM18YMM18XMM18
ZMM19YMM19XMM19
ZMM20YMM20XMM20
ZMM21YMM21XMM21
ZMM22YMM22XMM22
ZMM23YMM23XMM23
ZMM24YMM24XMM24
ZMM25YMM25XMM25
ZMM26YMM26XMM26
ZMM27YMM27XMM27
ZMM28YMM28XMM28
ZMM29YMM29XMM29
ZMM30YMM30XMM30
ZMM31YMM31XMM31



AVX는 세 개의 피연산자를 사용하는 VEX 코딩 방식 SIMD 명령어 형식을 도입하여 대상 레지스터가 두 개의 소스 피연산자와 구별된다.[5] SIMD 메모리 피연산자의 정렬 요구 사항이 완화되었다.[5]

새로운 VEX 코딩 방식은 opcode 공간을 확장하고, 명령어가 두 개 이상의 피연산자를 갖도록 하며, SIMD 벡터 레지스터가 128비트보다 길어지도록 하는 새로운 일련의 코드 접두사를 도입한다.[5]

AVX 명령어는 128비트 및 256비트 SIMD를 모두 지원한다.[6] 128비트 버전은 벡터화를 넓힐 필요 없이 이전 코드를 개선하는 데 유용하며, SSE에서 AVX로 전환하는 데 따른 불이익을 피할 수 있고, 일부 초기 AMD의 AVX 구현에서 더 빠르다.[6] 이 모드는 때때로 AVX-128이라고 한다.[6]

AVX에는 다음과 같은 새로운 명령어들이 추가되었다.

명령어설명
VBROADCASTSS, VBROADCASTSD, VBROADCASTF12832비트, 64비트 또는 128비트 메모리 피연산자를 XMM 또는 YMM 벡터 레지스터의 모든 요소로 복사한다.
VINSERTF128256비트 YMM 레지스터의 하위 절반 또는 상위 절반을 128비트 소스 피연산자의 값으로 대체한다. 대상의 다른 절반은 변경되지 않는다.
VEXTRACTF128256비트 YMM 레지스터의 하위 절반 또는 상위 절반을 추출하여 128비트 대상 피연산자에 값을 복사한다.
VMASKMOVPS, VMASKMOVPDSIMD 벡터 메모리 피연산자에서 임의의 수의 요소를 조건부로 대상 레지스터로 읽어 들여 나머지 벡터 요소는 읽지 않고 대상 레지스터의 해당 요소를 0으로 설정한다. 또는 SIMD 벡터 레지스터 피연산자에서 임의의 수의 요소를 벡터 메모리 피연산자로 조건부로 기록하여 메모리 피연산자의 나머지 요소는 변경하지 않는다. AMD 재규어 프로세서 아키텍처에서는 이 명령어가 메모리 소스 피연산자를 사용하고 마스크가 0일 때 300 클럭 사이클 이상이 소요되는데, 이 경우 명령은 아무것도 수행하지 않아야 한다.[7]
VPERMILPS, VPERMILPDIn-Lane 순열. 하나의 입력 피연산자의 32비트 또는 64비트 벡터 요소를 섞는다. 이들은 인-레인 256비트 명령어이며, 두 개의 별도 128비트 섞기로 모든 256비트에 대해 작동하므로 128비트 레인 간에 섞을 수 없다.[8]
VPERM2F128두 개의 256비트 소스 피연산자의 네 개의 128비트 벡터 요소를 즉시 상수를 선택기로 사용하여 256비트 대상 피연산자로 섞는다.
VTESTPS, VTESTPD팩싱된 단정밀도 또는 배정밀도 부동 소수점 부호 비트의 팩싱된 비트 테스트로, AND를 기반으로 ZF 플래그를 설정 또는 해제하고 ANDN을 기반으로 CF 플래그를 설정한다.
VZEROALL모든 YMM 레지스터를 0으로 설정하고 사용하지 않음으로 태그한다. 128비트 사용과 256비트 사용 간 전환 시 사용된다.
VZEROUPPER모든 YMM 레지스터의 상위 절반을 0으로 설정한다. 128비트 사용과 256비트 사용 간 전환 시 사용된다.


2. 2. AVX2

고급 벡터 확장 2 (AVX2)는 '''Haswell New Instructions'''라고도 불리며,[24] 2013년 인텔 하스웰 마이크로아키텍처에 도입된 AVX 명령어 집합의 확장판이다. AVX2는 다음과 같은 기능을 추가한다.

  • 대부분의 벡터 정수 SSE 및 AVX 명령어를 256비트로 확장
  • 불연속 메모리 위치에서 벡터 요소를 로드할 수 있도록 하는 가더 지원
  • DWORD- 및 QWORD- 세분성의 임의-대-임의 순열
  • 벡터 시프트


세 개의 피연산자를 사용하는 융합 곱셈-누산 (FMA3) 확장은 인텔이 동일한 프로세서 마이크로아키텍처에서 도입했기 때문에 AVX2의 일부로 간주되기도 한다. 이는 자체 CPUID 플래그를 사용하는 별도의 확장이며, 자체 페이지에 설명되어 있다.

명령어설명
VBROADCASTSS, VBROADCASTSD, VBROADCASTF12832비트, 64비트 또는 128비트 메모리 피연산자를 XMM 또는 YMM 벡터 레지스터의 모든 요소로 복사한다.
VINSERTF128256비트 YMM 레지스터의 하위 절반 또는 상위 절반을 128비트 소스 피연산자의 값으로 대체한다. 대상의 다른 절반은 변경되지 않는다.
VEXTRACTF128256비트 YMM 레지스터의 하위 절반 또는 상위 절반을 추출하여 128비트 대상 피연산자에 값을 복사한다.
VMASKMOVPS, VMASKMOVPDSIMD 벡터 메모리 피연산자에서 임의의 수의 요소를 조건부로 대상 레지스터로 읽어 들여 나머지 벡터 요소는 읽지 않고 대상 레지스터의 해당 요소를 0으로 설정한다. 또는 SIMD 벡터 레지스터 피연산자에서 임의의 수의 요소를 벡터 메모리 피연산자로 조건부로 기록하여 메모리 피연산자의 나머지 요소는 변경하지 않는다. AMD 재규어 프로세서 아키텍처에서는 이 명령어가 메모리 소스 피연산자를 사용하고 마스크가 0일 때 300 클럭 사이클 이상이 소요되는데, 이 경우 명령은 아무것도 수행하지 않아야 한다. 이는 설계 결함으로 보인다.[7]
VPERMILPS, VPERMILPDIn-Lane 순열. 하나의 입력 피연산자의 32비트 또는 64비트 벡터 요소를 섞는다. 이들은 인-레인 256비트 명령어이며, 두 개의 별도 128비트 섞기로 모든 256비트에 대해 작동하므로 128비트 레인 간에 섞을 수 없다.[8]
VPERM2F128두 개의 256비트 소스 피연산자의 네 개의 128비트 벡터 요소를 즉시 상수를 선택기로 사용하여 256비트 대상 피연산자로 섞는다.
VTESTPS, VTESTPD팩싱된 단정밀도 또는 배정밀도 부동 소수점 부호 비트의 팩싱된 비트 테스트로, AND를 기반으로 ZF 플래그를 설정 또는 해제하고 ANDN을 기반으로 CF 플래그를 설정한다.
VZEROALL모든 YMM 레지스터를 0으로 설정하고 사용하지 않음으로 태그한다. 128비트 사용과 256비트 사용 간 전환 시 사용된다.
VZEROUPPER모든 YMM 레지스터의 상위 절반을 0으로 설정한다. 128비트 사용과 256비트 사용 간 전환 시 사용된다.


2. 3. AVX-512

AVX-512는 2013년 7월 인텔이 제안한 x86 명령어 집합 아키텍처를 위한 256비트 고급 벡터 확장 SIMD 명령어의 512비트 확장이다.[3]

AVX-512 명령어는 새로운 EVEX 프리픽스로 인코딩된다. 이는 4개의 피연산자, 8개의 새로운 64비트 opmask 레지스터, 자동 브로드캐스트가 있는 스칼라 메모리 모드, 명시적 반올림 제어, 압축된 변위 메모리 주소 지정 모드를 허용한다. 레지스터 파일의 너비는 512비트로 증가하고 x86-64 모드에서 총 레지스터 수는 32개(레지스터 ZMM0-ZMM31)로 증가했다.

AVX-512는 여러 명령어 하위 집합으로 구성되며, 이를 구현하는 모든 프로세서에서 모두 지원되는 것은 아니다. 명령어 집합은 다음과 같이 구성된다.

  • AVX-512 Foundation (F): 여러 개의 새로운 명령어를 추가하고 대부분의 32비트 및 64비트 부동 소수점 SSE-SSE4.1 및 AVX/AVX2 명령어를 EVEX 코딩 방식으로 확장하여 512비트 레지스터, 연산 마스크, 매개변수 브로드캐스팅, 내장 반올림 및 예외 제어를 지원한다.
  • AVX-512 충돌 감지 명령어(CD): 더 많은 루프를 벡터화할 수 있도록 효율적인 충돌 감지를 제공하며, Knights Landing에서 지원된다.[3]
  • AVX-512 지수 및 역수 명령어(ER): 초월 연산을 구현하는 데 도움이 되도록 설계된 지수 및 역수 연산으로, Knights Landing에서 지원된다.[3]
  • AVX-512 프리페치 명령어(PF): 새로운 프리페치 기능을 제공하며, Knights Landing에서 지원된다.[3]
  • AVX-512 벡터 길이 확장(VL): 대부분의 AVX-512 연산을 XMM(128비트) 및 YMM(256비트) 레지스터(x86-64 모드에서 XMM16-XMM31 및 YMM16-YMM31 포함)에서도 작동하도록 확장한다.[25]
  • AVX-512 바이트 및 워드 명령어(BW): AVX-512를 8비트 및 16비트 정수 연산으로 확장한다.[25]
  • AVX-512 더블 워드 및 쿼드 워드 명령어(DQ): 향상된 32비트 및 64비트 정수 연산을 제공한다.[25]
  • AVX-512 정수 융합 곱셈 덧셈 (IFMA): 512비트 정수용 융합 곱셈 덧셈이다.[26]
  • AVX-512 벡터 바이트 조작 명령어(VBMI): AVX-512BW에 없는 벡터 바이트 순열 명령어를 추가한다.
  • AVX-512 벡터 신경망 명령어 워드 가변 정밀도(4VNNIW): 딥 러닝을 위한 벡터 명령어이다.
  • AVX-512 융합 곱셈 누산 팩 싱글 정밀도(4FMAPS): 딥 러닝을 위한 벡터 명령어이다.
  • VPOPCNTDQ: 1로 설정된 비트 수이다.[27]
  • VPCLMULQDQ: 쿼드 워드의 캐리 없는 곱셈이다.[27]
  • AVX-512 벡터 신경망 명령어(VNNI): 딥 러닝을 위한 벡터 명령어이다.[27]
  • AVX-512 갈루아 필드 새 명령어(GFNI): 갈루아 필드를 계산하기 위한 벡터 명령어이다.[27]
  • AVX-512 벡터 AES 명령어(VAES): AES 코딩을 위한 벡터 명령어이다.[27]
  • AVX-512 벡터 바이트 조작 명령어 2(VBMI2): 시프트와 함께 바이트/워드 로드, 저장 및 연결을 수행한다.[27]
  • AVX-512 비트 알고리즘(BITALG): VPOPCNTDQ를 확장하는 바이트/워드 비트 조작 명령어이다.[27]
  • AVX-512 Bfloat16 부동 소수점 명령어(BF16): AI 가속을 위한 벡터 명령어이다.
  • AVX-512 반정밀도 부동 소수점 명령어(FP16): 정밀도가 감소된 부동 소수점 및 복소수를 연산하기 위한 벡터 명령어이다.


AVX-512F(AVX-512 Foundation) 코어 확장은 모든 구현에서 필수이지만, 현재 모든 구현은 CD(충돌 감지)도 지원한다. AVX-512를 지원하는 모든 중앙 프로세서는 VL, DQ 및 BW도 지원한다. ER, PF, 4VNNIW 및 4FMAPS 명령어 집합 확장은 현재 인텔 컴퓨팅 코프로세서에서만 구현된다.

AVX-512F의 업데이트된 SSE/AVX 명령어는 AVX 버전과 동일한 니모닉을 사용하며, 512비트 ZMM 레지스터에서 작동하고 128/256비트 XMM/YMM 레지스터(AVX-512VL 포함)와 바이트, 워드, 더블 워드 및 쿼드 워드 정수 피연산자(AVX-512BW/DQ 및 VBMI 포함)도 지원한다.[26]

AVX-VNNI는 VEX로 코딩된 AVX512-VNNI 명령어 집합 확장의 변형이다. 마찬가지로, AVX-IFMA는 VEX로 코딩된 AVX512-IFMA의 변형이다. 이러한 확장은 AVX-512에 상응하는 연산 집합을 제공하지만, 256비트 벡터로 제한되며, 브로드캐스팅, opmask 레지스터 또는 16개 이상의 벡터 레지스터 접근과 같은 EVEX 인코딩의 추가 기능을 지원하지 않는다. 이러한 확장은 프로세서에 전체 AVX-512 지원이 구현되지 않은 경우에도 VNNI 및 IFMA 연산을 지원할 수 있게 해준다.

2. 4. AVX10

AVX10은 2023년 7월에 발표된 새로운 "융합된" AVX 명령어 집합이다.[7] AVX-512의 복잡성을 해결하고, 명령어 지원 여부를 쉽게 확인할 수 있는 인터페이스를 제공한다. AVX10은 버전 번호와 최대 벡터 길이(256 또는 512비트)로 구성된다.

2. 5. APX (Advanced Performance Extensions)

APX는 범용 레지스터 수를 32개로 두 배 늘리고 세 개의 피연산자를 사용하는 명령어 형식을 도입하여 x86-64 아키텍처에 RISC와 유사한 확장을 제공하는 새로운 확장 기능이다. APX가 확장된 피연산자를 도입함에 따라 AVX는 간접적으로 영향을 받는다.[43][44]

3. 특징

AVX는 다음과 같은 특징을 가진다.


  • 256/512비트 벡터 연산: SIMD 성능 향상을 위해 AVX는 256비트, AVX-512는 512비트 벡터 연산을 지원한다. AVX2는 대부분의 벡터 정수 SSE 및 AVX 명령어를 256비트로 확장한다.
  • 3/4 피연산자 명령어 형식: 레지스터 사용 효율성을 높이고 코드 최적화를 용이하게 하는 3/4 피연산자 명령어 형식을 지원한다.
  • 유연한 메모리 정렬: 데이터 정렬 제약을 완화하여 프로그래밍 편의성을 높인다.
  • 새로운 명령어: 가더-스캐터, 순열, 브로드캐스트 등 다양한 데이터 처리 패턴을 효율적으로 지원하는 새로운 명령어를 제공한다.


AVX는 16개의 YMM 레지스터를 사용하여 여러 데이터 조각에 대해 단일 명령을 수행하며(SIMD 참조), 각 YMM 레지스터는 다음을 포함하고 동시에 연산(수학)을 수행할 수 있다.

  • 8개의 32비트 단정밀도 부동 소수점 숫자 또는
  • 4개의 64비트 배정밀도 부동 소수점 숫자.


SIMD 레지스터의 너비는 128비트에서 256비트로 증가되었으며, XMM0–XMM7에서 YMM0–YMM7(x86-64 모드에서는 XMM0–XMM15에서 YMM0–YMM15)로 이름이 변경되었다.

AVX, AVX2, AVX-512 레지스터 관계
ZMM 레지스터 (AVX-512)YMM 레지스터 (AVX, AVX2)XMM 레지스터 (SSE)
ZMM0YMM0XMM0
ZMM1YMM1XMM1
ZMM2YMM2XMM2
ZMM3YMM3XMM3
ZMM4YMM4XMM4
ZMM5YMM5XMM5
ZMM6YMM6XMM6
ZMM7YMM7XMM7
ZMM8YMM8XMM8
ZMM9YMM9XMM9
ZMM10YMM10XMM10
ZMM11YMM11XMM11
ZMM12YMM12XMM12
ZMM13YMM13XMM13
ZMM14YMM14XMM14
ZMM15YMM15XMM15
ZMM16YMM16XMM16
ZMM17YMM17XMM17
ZMM18YMM18XMM18
ZMM19YMM19XMM19
ZMM20YMM20XMM20
ZMM21YMM21XMM21
ZMM22YMM22XMM22
ZMM23YMM23XMM23
ZMM24YMM24XMM24
ZMM25YMM25XMM25
ZMM26YMM26XMM26
ZMM27YMM27XMM27
ZMM28YMM28XMM28
ZMM29YMM29XMM29
ZMM30YMM30XMM30
ZMM31YMM31XMM31



AVX는 부동소수점 계산이 많은 작업에 유용하며, 특히 다음 분야에서 활용된다.


  • 멀티미디어 처리
  • 3D 모델링
  • 과학 모의실험
  • 재무 분석


AVX는 전력 효율성이 뛰어나고 유휴 소비전력이 미미하며, 더 폭넓은 벡터 지원으로 이전과 비교하여 최대 2배 높은 FLOPS를 제공한다. 또한, 스레드와 코어들 그리고 상호 연결의 증가에 따라 성능이 향상되며, 프로그래밍 유연성을 제공하고, AVX로부터 기존 및 새로운 애플리케이션의 성능을 향상시킨다.

3. 1. 명령어

AVX는 기존 SSE 명령어 대부분을 256비트 벡터 연산으로 확장하고, 데이터 처리 능력을 향상시키는 새로운 명령어들을 추가했다. AVX는 16개의 YMM 레지스터를 사용하며, 각 레지스터는 8개의 32비트 단정밀도 부동 소수점 숫자 또는 4개의 64비트 배정밀도 부동 소수점 숫자를 처리할 수 있다.

AVX는 VEX 코딩 방식이라는 새로운 SIMD 명령어 형식을 도입하여, 세 개의 피연산자를 사용한다. 이를 통해 대상 레지스터가 두 개의 소스 피연산자와 구별된다. 예를 들어, 기존 SSE 명령어는 `a ← a + b` 형태로 연산했지만, AVX는 `c ← a + b` 형태로 연산하여 소스 피연산자를 보존한다. 또한, SIMD 메모리 피연산자의 정렬 요구 사항이 완화되어, 대부분의 VEX로 코딩된 벡터 명령어는 메모리 피연산자가 벡터 크기에 맞춰 정렬될 필요가 없다.[5]

AVX는 128비트 및 256비트 SIMD를 모두 지원하는데, 128비트 버전은 벡터화를 넓힐 필요 없이 이전 코드를 개선하는 데 유용하며, SSE에서 AVX로 전환하는 데 따른 불이익을 피할 수 있다.

AVX-512는 AVX 명령어 집합을 512비트 벡터 연산으로 확장한 것이다. AVX-512 명령어는 새로운 EVEX 프리픽스로 인코딩되며, 레지스터 파일의 너비는 512비트로 증가하고 x86-64 모드에서 총 레지스터 수는 32개(ZMM0-ZMM31)로 증가했다.

AVX2는 인텔 하스웰 마이크로아키텍처에 도입된 AVX 명령어 집합의 확장판으로, '''Haswell New Instructions'''라고도 불린다.[24] AVX2는 대부분의 벡터 정수 SSE 및 AVX 명령어를 256비트로 확장하고, 가더 연산, 비트 조작 명령어 등을 지원한다.

3. 1. 1. 주요 명령어

AVX는 다양한 명령어들을 포함하고 있으며, 그 중 주요 명령어들은 다음과 같이 요약될 수 있다.

  • `VBROADCAST`: 메모리나 레지스터에 있는 값을 벡터 레지스터의 모든 요소에 복사한다.
  • `VINSERT`/`VEXTRACT`: 벡터 레지스터의 특정 부분을 삽입하거나 추출한다.
  • `VMASKMOV`: 마스크 레지스터를 이용하여 조건부로 메모리에서 데이터를 읽거나 쓴다.
  • `VPERM`: 벡터 요소들의 순서를 바꾼다.
  • `VGATHER`/`VPSCATTER`: 연속적이지 않은 메모리 위치에서 데이터를 읽거나 쓴다. (AVX2, AVX-512)
  • `VNNI` (Vector Neural Network Instructions): 딥 러닝 연산을 빠르게 처리하는 명령어들이다. (AVX-512, AVX-VNNI)
  • `IFMA` (Integer Fused Multiply-Add): 정수 곱셈-누산 연산을 빠르게 처리하는 명령어들이다. (AVX-512, AVX-IFMA)


AVX 명령어들은 VEX 코딩 방식을 사용하며, 대부분의 VEX로 코딩된 벡터 명령어는 메모리 피연산자가 벡터 크기에 맞춰 정렬될 필요가 없다.

명령어설명
`VBROADCASTSS`, `VBROADCASTSD`32비트 또는 64비트 레지스터의 값을 XMM 또는 YMM 벡터 레지스터의 모든 요소로 복사한다. (AVX1)
`VPBROADCASTB`, `VPBROADCASTW`, `VPBROADCASTD`, `VPBROADCASTQ`8, 16, 32 또는 64비트 정수 레지스터 또는 메모리의 값을 XMM 또는 YMM 벡터 레지스터의 모든 요소로 복사한다.
`VBROADCASTI128`128비트 메모리의 값을 YMM 벡터 레지스터의 모든 요소로 복사한다.
`VINSERTI128`256비트 YMM 레지스터의 하위/상위 절반을 128비트 값으로 바꾼다.
`VEXTRACTI128`256비트 YMM 레지스터의 하위/상위 절반을 추출하여 128비트 대상에 복사한다.
`VGATHERDPD`, `VGATHERQPD`, `VGATHERDPS`, `VGATHERQPS`32 또는 64비트 인덱스와 스케일을 사용하여 단정밀도 또는 배정밀도 부동 소수점 값을 수집(Gather)한다.
`VPGATHERDD`, `VPGATHERDQ`, `VPGATHERQD`, `VPGATHERQQ`32 또는 64비트 인덱스와 스케일을 사용하여 32 또는 64비트 정수 값을 수집한다.
`VPMASKMOVD`, `VPMASKMOVQ`SIMD 벡터 메모리에서 대상 레지스터로 조건부로 요소를 읽거나, SIMD 벡터 레지스터에서 벡터 메모리로 조건부로 요소를 쓴다.
`VPERMPS`, `VPERMD`레지스터 또는 메모리를 선택자로 사용하여, 256비트 소스의 8개 32비트 벡터 요소를 256비트 대상으로 섞는다.
`VPERMPD`, `VPERMQ`레지스터 또는 메모리를 선택자로 사용하여, 256비트 소스의 4개 64비트 벡터 요소를 256비트 대상으로 섞는다.
`VPERM2I128`즉시 상수를 선택자로 사용하여, 두 개의 256비트 소스의 4개 128비트 벡터 요소 중 두 개를 256비트 대상으로 섞는다.
`VPBLENDD`SSE4의 PBLEND 명령어의 더블워드 즉시 버전이다.
`VPSLLVD`, `VPSLLVQ`왼쪽 논리 시프트. 각 요소가 팩된 입력에 따라 시프트되는 가변 시프트를 허용한다.
`VPSRLVD`, `VPSRLVQ`오른쪽 논리 시프트. 각 요소가 팩된 입력에 따라 시프트되는 가변 시프트를 허용한다.
`VPSRAVD`오른쪽 산술 시프트. 각 요소가 팩된 입력에 따라 시프트되는 가변 시프트를 허용한다.



AVX-512는 새로운 EVEX 프리픽스로 인코딩되며, 레지스터 파일의 너비가 512비트로 증가하고 x86-64 모드에서 총 레지스터 수는 32개(ZMM0-ZMM31)로 증가했다. AVX-512는 여러 명령어 하위 집합으로 구성되며, 모든 프로세서에서 모두 지원되는 것은 아니다.


  • AVX-512 Foundation (F): 512비트 레지스터, 연산 마스크 등을 지원.
  • AVX-512 Conflict Detection Instructions (CD): 효율적인 충돌 감지 제공 (Knights Landing 지원).[3]
  • AVX-512 Exponential and Reciprocal Instructions (ER): 지수 및 역수 연산 (Knights Landing 지원).[3]
  • AVX-512 Prefetch Instructions (PF): 새로운 프리페치 기능 제공 (Knights Landing 지원).[3]
  • AVX-512 Vector Length Extensions (VL): 대부분의 AVX-512 연산을 XMM (128비트) 및 YMM (256비트) 레지스터에서도 작동하도록 확장.[25]
  • AVX-512 Byte and Word Instructions (BW): 8비트 및 16비트 정수 연산으로 확장.[25]
  • AVX-512 Doubleword and Quadword Instructions (DQ): 향상된 32비트 및 64비트 정수 연산 제공.[25]
  • AVX-512 Integer Fused Multiply-Add (IFMA): 512비트 정수용 융합 곱셈 덧셈.[26]
  • AVX-512 Vector Byte Manipulation Instructions (VBMI): AVX-512BW에 없는 벡터 바이트 순열 명령어 추가.
  • AVX-512 Vector Neural Network Instructions Word variable precision (4VNNIW): 딥 러닝을 위한 벡터 명령어.
  • AVX-512 Fused Multiply Accumulation Packed Single precision (4FMAPS): 딥 러닝을 위한 벡터 명령어.
  • VPOPCNTDQ: 1로 설정된 비트 수.[27]
  • VPCLMULQDQ: 쿼드 워드의 캐리 없는 곱셈.[27]
  • AVX-512 Vector Neural Network Instructions (VNNI): 딥 러닝을 위한 벡터 명령어.[27]
  • AVX-512 Galois Field New Instructions (GFNI): 갈루아 필드 계산을 위한 벡터 명령어.[27]
  • AVX-512 Vector AES Instructions (VAES): AES 코딩을 위한 벡터 명령어.[27]
  • AVX-512 Vector Byte Manipulation Instructions 2 (VBMI2): 시프트와 함께 바이트/워드 로드, 저장 및 연결 수행.[27]
  • AVX-512 Bit Algorithms (BITALG): VPOPCNTDQ를 확장하는 바이트/워드 비트 조작 명령어.[27]
  • AVX-512 Bfloat16 부동 소수점 명령어 (BF16): AI 가속을 위한 벡터 명령어.
  • AVX-512 반정밀도 부동 소수점 명령어 (FP16): 정밀도가 감소된 부동 소수점 및 복소수를 연산하기 위한 벡터 명령어.


AVX-VNNI는 VEX로 코딩된 AVX512-VNNI 명령어 집합 확장의 변형이며, AVX-IFMA는 VEX로 코딩된 AVX512-IFMA의 변형이다.

4. AVX 지원 프로세서

AVX는 여러 제조사의 프로세서에서 지원된다.

AVX 지원 프로세서
제조사프로세서
인텔
AMD
VIA
자오신



인텔AMD 프로세서 간의 호환성 문제는 XOP 명령어 집합에서 논의된다.

4. 1. 인텔


  • 인텔
  • * 샌디 브리지 프로세서 (2011년 1분기) 이후 (셀러론 및 펜티엄 브랜드 모델 제외).[9]
  • * 타이거 레이크 (2020년 3분기)부터 출시된 펜티엄 및 셀러론 브랜드 프로세서.[10]
  • * 하스웰 프로세서 (2013년 2분기) 이후 (셀러론 및 펜티엄 브랜드 모델 제외).
  • * 엘더 레이크 프로세서 (2021년 4분기) 이후.
  • * 시에라 포레스트 E-코어 전용 제온 프로세서 (2024년 2분기) 이후.
  • * 그랜드 리지 특수 목적 프로세서 이후.
  • * 메테오 레이크 모바일 프로세서 (2023년 4분기) 이후.
  • * 애로우 레이크 데스크톱 프로세서 (2024년 4분기) 이후.

4. 2. AMD

AMD불도저 프로세서(2011년 4분기)부터 AVX를 지원한다.[11] 재규어 프로세서 아키텍처에서는 VMASKMOVPS, VMASKMOVPD 명령어에 설계 결함이 존재하여, 메모리 소스 피연산자를 사용하고 마스크가 0일 때 300 클럭 사이클 이상 소요된다.[7] 익스케베이터 프로세서 (2015년 2분기)부터는 AVX2를 지원한다. Zen 4 (2022년)부터 AVX-512를 지원하며, Zen 5 (2024년 3분기)부터 AVX-VNNI를 지원한다.[37]

4. 3. 기타


  • VIA:
  • * 나노 쿼드코어
  • * 에덴 X4
  • 자오신:
  • * 우다오코우 기반 프로세서 (KX-5000 및 KH-20000)

5. 운영 체제 지원

AVX는 256비트 너비의 YMM 레지스터 파일을 통해 새로운 레지스터 상태를 추가하므로, 컨텍스트 전환 사이에서 AVX의 확장된 레지스터를 제대로 저장하고 복원하려면 명시적인 운영 체제 지원이 필요하다.

AVX10은 2023년 7월에 발표되었으며, 새로운 "융합된" AVX 명령어 집합이다. AVX-512의 문제점인 많은 부분으로 나뉘어져 있다는 점(20개의 기능 플래그)과 512비트 벡터 지원을 필수로 한다는 점을 해결한다. AVX10은 명령어 지원 여부를 테스트하기 위한 단순화된 CPUID 인터페이스를 제공하며, AVX10 버전 번호(지원되는 명령어 집합을 나타내며, 이후 버전은 항상 이전 버전의 상위 집합)와 사용 가능한 최대 벡터 길이(256 또는 512비트)로 구성된다.[40] 버전과 벡터 길이를 함께 표기하는 표기법이 사용된다. (예: AVX10.2/256은 CPU가 최대 벡터 폭이 256비트인 AVX10의 두 번째 버전을 지원함을 나타낸다.)[41]

AVX10.1/512는 인텔 그래나이트 래피즈[41](2024년 3분기)에 처음 출시되었으며, AVX10.2/512는 다이아몬드 래피즈에서 사용 가능할 예정이다.[42]

5. 1. 지원 운영 체제

리눅스는 커널 버전 2.6.30부터 지원한다.[18][19] macOS는 2011년 6월 23일에 출시된 10.6.8 (Snow Leopard) 업데이트에서 지원이 추가되었다.[20] FreeBSD는 2012년 1월 21일에 제출된 패치[16]에서 지원이 추가되었으며, 9.1 안정 릴리스에 포함되었다.[17] DragonFly BSD는 2013년 초에 지원이 추가되었다. OpenBSD는 2015년 3월 21일에 지원이 추가되었다.[22] Solaris는 Solaris 10 Update 10 및 Solaris 11에서 지원된다. Windows는 Windows 7 SP1, Windows Server 2008 R2 SP1,[23] Windows 8, Windows 10에서 지원된다.

6. 응용 분야

고급 벡터 확장(AVX) 명령어는 부동소수점 계산이 많은 작업에 유용하며, 멀티미디어 처리, 3D 모델링, 과학 모의실험, 재무 분석 등 다양한 분야에서 활용되어 성능 향상에 기여한다.

AVX는 최대 256비트 벡터 부동소수점 데이터를 처리하고, 2 피연산자 명령어 구조에서 3 피연산자 명령어 구조를 지원하여 프로그래밍 유연성을 높였다. 전력 효율성이 뛰어나고 유휴 소비 전력이 낮으며, 더 넓은 벡터 지원으로 이전보다 최대 2배 높은 FLOPS를 제공한다. 스레드, 코어, 상호 연결 증가에 따라 성능이 향상되며, 기존 및 새로운 애플리케이션의 성능을 개선한다.

AVX 명령어는 기존 128비트 SSE 명령어의 256비트 확장 외에도 추가적인 명령어를 제공하며, 128비트와 256비트 피연산자 모두에서 사용할 수 있다.

AVX2는 인텔 하스웰 마이크로아키텍처에 도입된 AVX 명령어 집합의 확장판이다. AVX2는 벡터 정수 SSE 및 AVX 명령어를 256비트로 확장하고, 가더 지원, DWORD- 및 QWORD- 세분성 순열, 벡터 시프트 등의 기능을 추가한다.

AVX-512는 x86 명령어 집합의 512비트 확장으로, EVEX 프리픽스로 인코딩된다. 4개 피연산자, 8개 opmask 레지스터, 자동 브로드캐스트, 명시적 반올림 제어, 압축 변위 메모리 주소 지정 모드를 허용한다. 레지스터 파일 너비는 512비트, 총 레지스터 수는 32개(ZMM0-ZMM31)로 증가했다.

AVX-512는 여러 명령어 하위 집합으로 구성되며, 모든 프로세서가 모든 하위 집합을 지원하지는 않는다. AVX-512F(Foundation)는 모든 구현에서 필수이며, 현재 모든 구현은 CD(충돌 감지)도 지원한다. AVX-512 지원 프로세서는 VL, DQ, BW도 지원한다. ER, PF, 4VNNIW, 4FMAPS는 현재 인텔 컴퓨팅 코프로세서에서만 구현된다.

AVX-512F의 업데이트된 SSE/AVX 명령어는 AVX 버전과 동일한 니모닉을 사용하며, 512비트 ZMM 레지스터, 128/256비트 XMM/YMM 레지스터(AVX-512VL 포함), 바이트, 워드, 더블 워드, 쿼드 워드 정수 피연산자(AVX-512BW/DQ 및 VBMI 포함)를 지원한다.[26]

AVX는 부동 소수점 SIMD 연산 병렬성과 처리량을 증가시키고, 비파괴적 명령어 덕분에 레지스터 로드를 줄인다. 리눅스 RAID 소프트웨어 성능을 향상시킨다(AVX2 필요).[45]

6. 1. 멀티미디어

Advanced Vector Extensions|고급 벡터 확장영어(AVX)는 멀티미디어 처리, 특히 비디오 인코딩/디코딩, 이미지 처리, 오디오 처리에 널리 사용된다.

  • 비디오 인코딩/디코딩: x264, x265, VTM 비디오 인코더는 인코딩 속도를 높이기 위해 AVX2 또는 AVX-512를 사용할 수 있다.[49] AV1 디코더 [https://code.videolan.org/videolan/dav1d dav1d]는 지원되는 CPU에서 AVX2 및 AVX-512를 사용할 수 있다.[51][52] AV1 인코더 [https://gitlab.com/AOMediaCodec/SVT-AV1 SVT-AV1]는 비디오 인코딩 속도를 높이기 위해 AVX2 및 AVX-512를 사용할 수 있다.[53] VP8/VP9 인코더/디코더의 오픈 소스 참조 구현인 libvpx는 사용 가능한 경우 AVX2 또는 AVX-512를 사용한다.
  • 이미지 처리: libjpeg-turbo는 이미지 처리를 가속화하기 위해 AVX2를 사용한다.
  • 오디오 처리: Native Instruments의 Massive X 소프트 신스는 AVX가 필요하다.[50]

6. 2. 과학 및 공학

Advanced Vector Extensions|고급 벡터 확장영어(AVX)는 과학 및 공학 분야에서 다양하게 활용된다.

  • 분산 컴퓨팅: Einstein@Home, Folding@home과 같은 분산 컴퓨팅 프로젝트에서 AVX를 사용하여 중력파 탐색, 단백질 접힘 시뮬레이션 등의 복잡한 계산을 가속화한다.[56][57]
  • 유한 요소 해석 및 전산 유체 역학: AVX는 복잡한 공학 시뮬레이션에 필요한 부동소수점 연산을 빠르게 처리하여 효율성을 높인다.
  • 암호화: OpenSSL, libsodium 등 다양한 암호화 라이브러리에서 AVX, AES 코딩을 위한 벡터 명령어(VAES), 갈루아 필드 계산을 위한 벡터 명령어(GFNI) 등을 활용하여 암호화 알고리즘의 성능을 향상시킨다.[47][27] 특히, 리눅스 커널은 AES-NI와 함께 AES-GCM 암호화 알고리즘의 최적화된 구현에 AVX 또는 AVX2를 사용한다.
  • 딥 러닝: TensorFlow, PyTorch 등 딥 러닝 프레임워크는 AVX를 활용하여 신경망 학습 및 추론 속도를 높인다.[58] AVX-512의 벡터 신경망 명령어(VNNI), Bfloat16 부동 소수점 명령어(BF16) 등은 딥 러닝 연산을 더욱 가속화한다.[27]
  • 데이터베이스: Esri ArcGIS 데이터 스토어는 그래프 스토리지를 위해 AVX2를 사용한다.[54]


이 외에도, Prime95/MPrime, dnetc와 같은 과학, 공학 분야 소프트웨어에서 AVX를 활용하여 성능을 향상시키고 있다.[55]

6. 3. 기타


  • 게임
  • Horizon: Zero Dawn은 Decima 게임 엔진에서 AVX를 사용한다.[57]
  • PCSX2RPCS3는 각각 PS2 및 PS3 에뮬레이터로, 게임 에뮬레이션을 위해 AVX2 및 AVX-512 명령어를 사용한다.
  • 소프트웨어 정의 라디오
  • Helios는 64비트 x86 하드웨어에서 AVX 및 AVX2 하드웨어 가속을 사용한다.[57]
  • 네트워크 프로토콜
  • 네트워크 장치 인터페이스는 NewTek에서 개발한 IP 비디오/오디오 프로토콜로, 성능 향상을 위해 AVX 및 AVX2를 사용한다.
  • 암호화폐 채굴
  • 다양한 CPU 기반 암호화폐 채굴기(예: 비트코인, 라이트코인)는 SHA-256, scrypt 등 암호화 관련 루틴에 AVX 및 AVX2를 사용한다.
  • 텍스트 편집기
  • EmEditor (19.0 이상 버전)는 처리를 가속화하기 위해 AVX2를 사용한다.[59]
  • 화상 회의
  • Microsoft Teams는 화상 회의에서 배경 흐림, 사용자 지정 배경 설정,[60] 배경 소음 제거를 위해 AVX2 명령어를 사용한다.[61]

7. 다운클러킹

고급 벡터 확장(AVX) 명령은 폭이 넓어 더 많은 전력을 소비하고 더 많은 열을 발생시킨다. 높은 CPU 클럭 주파수에서 과도한 AVX 명령을 실행하면 부하 과도기 동안 전압 강하가 과도하게 발생하여 CPU 안정성에 영향을 줄 수 있다. 일부 인텔 프로세서에는 이러한 명령이 실행될 때 터보 부스트 주파수 제한을 줄이는 기능이 있다. 이 감소는 CPU가 열 및 전력 소비 한계에 도달하지 않은 경우에도 발생한다. 스카이레이크 및 그 파생 제품에서 스로틀링은 세 단계로 나뉜다.[66][67]


  • L0 (100%): 정상 터보 부스트 제한.
  • L1 (~85%): "AVX 부스트" 제한. 256비트 "무거운"(부동 소수점 장치: FP 수학 및 정수 곱셈) 명령에 의해 소프트 트리거된다. "가벼운"(다른 모든) 512비트 명령에 의해 하드 트리거된다.
  • L2 (~60%): "AVX-512 부스트" 제한. 512비트 무거운 명령에 의해 소프트 트리거된다.


주파수 전환은 소프트 또는 하드일 수 있다. 하드 전환은 이러한 명령이 발견되는 즉시 주파수가 감소하는 것을 의미하고, 소프트 전환은 일치하는 명령의 임계값 수에 도달한 후에만 주파수가 감소하는 것을 의미한다. 제한은 스레드당 적용된다.[66]

아이스 레이크에서는 두 단계만 유지된다.[68]

  • L0 (100%): 정상 터보 부스트 제한.
  • L1 (~97%): 모든 512비트 명령에 의해 트리거되지만 단일 코어 부스트가 활성화된 경우에만 트리거되며, 여러 코어가 로드된 경우에는 트리거되지 않는다.


로켓 레이크 프로세서는 벡터 크기에 관계없이 모든 종류의 벡터 명령을 실행할 때 주파수 감소를 트리거하지 않는다.[68] 그러나 열 및 전력 제한에 도달하는 등 다른 이유로 인해 다운클럭킹이 발생할 수 있다.

다운클럭킹은 혼합 워크로드에서 AVX를 사용하는 것이 인텔 프로세서에서 주파수 페널티를 초래할 수 있음을 의미한다. 넓고 무거운 명령의 사용을 피하면 이러한 경우의 영향을 최소화하는 데 도움이 된다. AVX-512VL을 사용하면 AVX-512 명령에서 256비트 또는 128비트 피연산자를 사용할 수 있으므로 혼합 로드에 적합한 기본값이다.[69]

다운클럭킹되는 프로세서의 지원되는 잠금 해제된 변형에서 클럭 비율 감소 오프셋(일반적으로 AVX 및 AVX-512 오프셋이라고 함)은 조정 가능하며 인텔의 오버클러킹/튜닝 유틸리티 또는 BIOS에서 지원하는 경우 BIOS를 통해 완전히 해제(0x로 설정)할 수 있다.[70]

참조

[1] 웹사이트 Intel's Sandy Bridge Microarchitecture http://www.realworld[...] 2018-02-17
[2] 뉴스 Analyzing Bulldozer: Why AMD's chip is so disappointing - Page 4 of 5 - ExtremeTech https://www.extremet[...] 2018-02-17
[3] 간행물 AVX-512 Instructions http://software.inte[...] Intel 2013-08-20
[4] 뉴스 Intel Xeon Phi Processor 7210 (16GB, 1.30 GHz, 64 core) Product Specifications http://ark.intel.com[...] 2018-03-16
[5] 서적 Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture http://www.intel.com[...] Intel Corporation 2014-08-23
[6] 웹사이트 i386 and x86-64 Options - Using the GNU Compiler Collection (GCC) https://gcc.gnu.org/[...] 2014-02-09
[7] 웹사이트 The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers http://www.agner.org[...] 2016-10-17
[8] 웹사이트 Chess programming AVX2 https://chessprogram[...] 2016-10-17
[9] 웹사이트 Intel Offers Peek at Nehalem and Larrabee http://www.extremete[...] ExtremeTech 2008-03-17
[10] 웹사이트 Intel® Celeron® 6305 Processor (4M Cache, 1.80 GHz, with IPU) Product Specifications https://ark.intel.co[...] 2020-11-10
[11] 논문 Bulldozer: An Approach to Multithreaded Compute Performance https://pds.ucdenver[...] 2011-03
[12] 웹사이트 What's New - RAD Studio https://docwiki.emba[...] 2021-09-17
[13] 웹사이트 GAS Changes https://sourceware.o[...] 2024-05-03
[14] 웹사이트 NASM - The Netwide Assembler, Appendix C: NASM Version History https://nasm.us/doc/[...] 2024-05-03
[15] 웹사이트 YASM 0.7.0 Release Notes http://yasm.tortall.[...]
[16] 간행물 Add support for the extended FPU states on amd64, both for native 64bit and 32bit ABIs http://svnweb.freebs[...] svnweb.freebsd.org 2012-01-22
[17] 웹사이트 FreeBSD 9.1-RELEASE Announcement http://www.freebsd.o[...] 2013-05-20
[18] 간행물 x86: add linux kernel support for YMM state https://git.kernel.o[...] 2009-07-13
[19] 간행물 Linux 2.6.30 - Linux Kernel Newbies http://kernelnewbies[...] 2009-07-13
[20] 간행물 Twitter https://twitter.com/[...] 2010-06-23
[21] 웹사이트 Devs are making progress getting macOS Ventura to run on unsupported, decade-old Macs https://arstechnica.[...] 2022-08-23
[22] 간행물 Add support for saving/restoring FPU state using the XSAVE/XRSTOR. http://marc.info/?l=[...] 2015-03-25
[23] 간행물 Floating-Point Support for 64-Bit Drivers http://msdn.microsof[...] 2009-12-06
[24] 간행물 Haswell New Instruction Descriptions Now Available http://software.inte[...] Software.intel.com 2012-01-17
[25] 웹사이트 Additional AVX-512 instructions https://software.int[...] Intel 2014-08-03
[26] 웹사이트 Intel Architecture Instruction Set Extensions Programming Reference https://software.int[...] Intel 2014-01-29
[27] 웹사이트 Intel® Architecture Instruction Set Extensions and Future Features Programming Reference https://software.int[...] Intel 2017-10-16
[28] 웹사이트 Intel® Software Development Emulator {{!}} Intel® Software https://software.int[...] 2016-06-11
[29] 웹사이트 Intel Nukes Alder Lake's AVX-512 Support, Now Fuses It Off in Silicon https://www.tomshard[...] 2022-03-07
[30] 웹사이트 Intel Architecture Day 2021: Alder Lake, Golden Cove, and Gracemont Detailed https://www.anandtec[...] 2021-08-25
[31] 웹사이트 Intel Architecture Day 2021: Alder Lake Chips, Golden Cove and Gracemont Cores https://www.tomshard[...] 2021-08-21
[32] 웹사이트 The Intel 12th Gen Core i9-12900K Review: Hybrid Performance Brings Hybrid Complexity https://www.anandtec[...] 2021-11-05
[33] 웹사이트 LLVM 3.9 Release Notes — LLVM 3.9 documentation http://releases.llvm[...] 2017-04-03
[34] 웹사이트 GCC 4.9 Release Series — Changes, New Features, and Fixes{{snd}} GNU Project - Free Software Foundation (FSF) https://gcc.gnu.org/[...] 2017-04-03
[35] 웹사이트 Intel® Parallel Studio XE 2015 Composer Edition C++ Release Notes {{!}} Intel® Software https://software.int[...] 2017-04-03
[36] 웹사이트 Microsoft Visual Studio 2017 Supports Intel® AVX-512 https://blogs.msdn.m[...] 2017-07-11
[37] 웹사이트 AMD Zen 5 Compiler Support Posted For GCC - Confirms New AVX Features & More https://www.phoronix[...] 2024-02-10
[38] 웹사이트 Intel Unveils AVX10 and APX Instruction Sets: Unifying AVX-512 For Hybrid Architectures https://www.anandtec[...] AnandTech 2024-08-21
[39] 웹사이트 Intel's AVX10 promises benefits of AVX-512 without baggage https://www.theregis[...] 2023-08-20
[40] 웹사이트 The Converged Vector ISA: Intel® Advanced Vector Extensions 10 Technical Paper https://www.intel.co[...]
[41] 웹사이트 Intel® Advanced Vector Extensions 10 (Intel® AVX10) Architecture Specification https://www.intel.co[...]
[42] 웹사이트 Intel Preps GCC Compiler For New AMX & ISA Features Ahead Of Diamond Rapids https://www.phoronix[...] 2024-10-23
[43] 웹사이트 Intel® Advanced Performance Extensions (Intel® APX) Architecture Specification https://www.intel.co[...] Intel
[44] 웹사이트 Intel discloses x86 and vector instructions for future chips https://www.theregis[...] 2023-08-20
[45] 웹사이트 Linux RAID https://git.kernel.o[...] LWN 2013-02-17
[46] 웹사이트 Comparison of BSAFE cryptographic library implementations https://www.dell.com[...] 2023-07-25
[47] 웹사이트 Improving OpenSSL Performance https://software.int[...] 2017-02-28
[48] 웹사이트 OpenSSL 3.0.0 release notes https://github.com/o[...] 2021-09-07
[49] 웹사이트 Rendering in Blender using AVX-512 Vectorization https://www.ixpug.or[...] Technical University of Ostrava 2022-05-28
[50] 웹사이트 MASSIVE X Requires AVX Compatible Processor http://support.nativ[...] 2019-11-29
[51] 웹사이트 dav1d: performance and completion of the first release http://www.jbkempf.c[...] 2018-11-22
[52] 웹사이트 dav1d 0.6.0 release notes https://code.videola[...] 2020-03-06
[53] 웹사이트 SVT-AV1 0.7.0 release notes https://gitlab.com/A[...] 2019-09-26
[54] 웹사이트 ArcGIS Data Store 11.2 System Requirements https://enterprise.a[...] 2024-01-24
[55] 웹사이트 Prime95 release notes https://www.mersenne[...] 2022-07-10
[56] 웹사이트 Einstein@Home Applications http://einsteinathom[...]
[57] 웹사이트 FAQ, Helios https://heliosmusic.[...] 2021-07-05
[58] 웹사이트 Tensorflow 1.6 https://github.com/t[...]
[59] 문서 New in Version 19.0 – EmEditor (Text Editor) https://www.emeditor[...]
[60] 웹사이트 Hardware requirements for Microsoft Teams https://docs.microso[...] 2020-04-17
[61] 웹사이트 Reduce background noise in Teams meetings https://support.micr[...] 2021-01-05
[62] 간행물 Parsing Gigabytes of JSON per Second 2019
[63] 웹사이트 simdjson 2.1.0 release notes https://github.com/s[...] 2022-06-30
[64] 웹사이트 OpenJDK Merges Intel's x86-simd-sort For Speeding Up Data Sorting 7~15x https://www.phoronix[...] 2023-10-06
[65] 웹사이트 Tesseract OCR 5.2 Engine Finds Success With AVX-512F https://www.phoronix[...] 2022-07-07
[66] 웹사이트 AVX-512: when and how to use these new instructions https://lemire.me/bl[...] 2018-09-07
[67] 웹사이트 SIMD instructions lowering CPU frequency https://stackoverflo[...]
[68] 웹사이트 Ice Lake AVX-512 Downclocking https://travisdowns.[...] 2020-08-19
[69] 웹사이트 x86 - AVX 512 vs AVX2 performance for simple array processing loops https://stackoverflo[...]
[70] 웹사이트 Intel® Extreme Tuning Utility (Intel® XTU) Guide to Overclocking : Advanced Tuning https://www.intel.co[...] 2021-07-18
[71] 웹인용 Intel Software Network http://softwareproje[...] 2008-04-05
[72] 웹인용 Intel Advanced Vector Extensions Programming Reference http://softwarecommu[...] 2008-04-05



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com