기본 콘텐츠로 건너뛰기

글

라벨이 intel인 게시물 표시

Intel 교육

어제 Intel 과 BestInfra 가 함께한 Software Optimization on Intel Architecture(Linux)를 듣고 왔다. 몇몇가지 정리를 하자면 아래와 같다. 인텔에서 제작한 최신 C/C++ 컴파일러(ICC 10 - 2007년 11월 21일 기준)는 인텔에서 출시한 모든 CPU에 추가된 확장명령코드를 이용해 최적화를 할 수 있다. 다른 컴파일러들이 귀찮아서 거의 안 하는 짓꺼리를 인텔 컴파일러는 이 꽉 깨물고 최적화해준다. 뭐, 가장 볼만한게 Loop Vectorization 을 해서 SIMD 로 기계어 만들어내고 그걸 CPU에 집어넣으니, GCC의 x86코드보다 훨 빠르다!라는 것. 당연하지. (GCC는 범용 컴파일러. 많은 종류 CPU를 소화할 수 있지만 그만큼 특화가 어렵고, 같이 제공하는 GLIBC 역시 특화한 라이브러리에 비해 느린 편이다.) 뱀발: 관계자 설명에 의하면, 인텔은 최신 머신에 대해 최고 컴파일러를 빨리 내놓을 뿐, 최소 6개월 정도면 GCC에서도 비슷한 수준으로 최적화하는 컴파일러를 만들어낸다고 한다. 장사를 하자고 말자고? 어짜피 인텔은 H/W회사지 S/W회사가 아니다. 컴파일러 장사를 하기보단, 자사 CPU에서 이런 식으로 동작시키면 좀더 빠르게 동작해요를 홍보하기 위한 것이지. 뭐... 이게 중요한게 아니고... 인텔 컴파일러 장점은 GCC/GLIBC와 거의 완벽하게 호환(확장기능까지!)하기때문에 소스코드를 고칠 노력 없이 컴파일 옵션만으로도 더 나은 성능을 맛 볼 수 있다. 게다가 각종 Object/Library 파일도 호환한다. 몇몇가지 자주 쓰이는 수치관련 라이브러리를 최적화하여 만들어 제공한다. 예로 기본 math대신에 imf라이브러리를 이용하면 좀더 좋은 성능을 맛볼 수 있다. 원한다면 소스에서 컴파일러 디렉티브를 이용해 최적화요소를 컴파일러에게 직접 지시할 수도 있다. 컴파일러가 내뿜는 최적화 요소 정보가 GCC보다 훨씬 많고 다양해서 실제 코드를 고쳐서 최적화를 할 때 많은 도움이 된다...

IA - Intel Architecture

IA는 말 그대로 인텔에서 만든 CPU 구조이다. 보통 흔히 볼 수 있는 것이 IA-32이며, IBM호환, i386, x86 등과도 비스무레하게 쓰인다. 이 녀석은 최초에 하위호환성 이유로 CISC구조를 가지고 가고 있으며, 이후에 성능한계를 극복하기 위해 겉은 CISC이며 내부적으론 RISC구조를 일부 갖게 되었다. 그러나 역시나 CISC정신을 이어 받아, 쓰던 기계어는 그대로 계속 쓸 수 있다. Intel이 서버시장에서 성능한계를 극복하고자 HP와 손을 잡고 2001년 첫 Itanium을 발표했다. 이른바 IA-64로 HP도움으로 RISC를 기반하며, 과거 CISC 기계어는 emulator로 작동한다. 여기서 IA-64는 IA-32와 호환하지 않는다.(해도 쓸모가 없을 정도로 느리겠지...) OS를 비롯해서 모든 application을 다시 만들어야하는 수고가 있지만 시장에서 잘 돌아가고 있나보다. Itanium2를 2007년 11월에 발표한 것 보니까... 아무튼 IA-32와 IA-64와 뭔가 관련이 있을까해서 찾아봤는데, Intel브랜드라는 것외에는 아무런 관련이 없다는 결론이다. Powered by ScribeFire . 원본 위치: http://purewell.egloos.com/3496817