발번역:http://embeddedinnovator.com/2011/03/intel-advanced-vector-extensions-next-generation-vector-processing/
AbstractHigh-performance vector processing은 레이더, 비디오 분석, 의료 이미지, 미디어 처리등에 꼭 필요하다. 이런 애플리케이션들은 파워, 공간, 가격, TTM등에 민감하다. 인텔에서 제한하는 Intel Advanced Vector Extensions (AVX)는 fully integrated graphics engine, power-saving enhancements, flexible I/O등을 통해서 이런 것들을 극복하게 해준다. 이 2nd 세대 Intel Core Processor는 그전 세대에 비해서 더 많은 workloads를 처리할 수 있다.
AVX instructions는 특히 computation intensive한 애플리케이션에대해 더욱 중요하다. AVX는 Intel Streaming SIMD Extensions (SSE)보다 두배의 floating-point 연산성능 향상을 기대할 수 있다. 두배의 성능을 내기위해서 AVX는 floating-point data path를 128bits에서 256bits로 증가 시키고, 256-bit vector instructions을 지원한다.
Intel AVX Feautres
Wider Vecotrs
AVX에는 (SSE의 128-bit XMM register를 확장시킨) 16개의 256-bit YMM register들이 있다. YMM의 lsb 128bits들은 XMM register들과 같다. 모든 16개의 YMM register들은 64bit OS에서 사용가능하고 32bit OS에서는 8개의 register들만 사용가능하다.
같은 원리로 128bits SSE floating-point arithmetic instruction은 256bits floating-point 연산으로 확장된다. 새 256-bit floating-point Add, Multiply, and shuffle 연산자는 single cycle에 연산이 가능하다.
Dual load ports
이전 세대에서는 한 개의 128-bit load port를 지원했으나, 2nd 세대에서는 두 개의 128-bit load ports를 지원한다. 따라서 bandwidth가 두배로 증가하였고, 이것은 앞서 말한 연산량의 두배 증가를 받쳐 줄 수 있다.
Support for 3- and 4-operand instructions
SSE에서는 XXM1 = XMM1 + XMM2와 같은 dual-operand instruction에 제한이 있었다. 반해, AVX는 YMM3 = YMM1 + YMM2와 같은 3-와 4- operand instruction을 지원한다. non-destructive source operand의 지원은 registers, register-register copy, explicit load 명령들을 줄여준다. 코드 크기의 감소는 macro-fusion(i.e., 컴파일러에 의한 instruction merging) 과 micro-fusion(i.e., pipeline에서의 microinstruction merging)의 기회를 높여준다.
샌디 브릿지의 AVX 명령어 셋트 : http://gigglehd.com/zbxe/5043210
'Tips' 카테고리의 다른 글
Ctrl + F5눌러도 안 멈출때 (0) | 2012.06.04 |
---|---|
고려대학교 무선랜 설정 (0) | 2012.05.23 |
TTS (0) | 2011.11.30 |
jflap GUI NFA DFA 프로그램 (0) | 2011.10.20 |
putty 나 xShell 등 shell 프로그램에서 GUI (X11) 보기 (0) | 2011.08.09 |
댓글