당신이 만든 프로그램에 최적화를 더하라!
프로그램 성능 최적화하기 위한 노하우 시리즈
우리가 만든 프로그램이 성능이 낮고 비효율적일 때, 어떻게 하면 성능을 높일 수 있을지 고민하게 된다. 성능이 무엇보다 중요한 이슈라면, 성능 최적화를 위해 많은 시간과 노력을 투자할 것이다. 이 책은 프로그램의 성능을 어떻게 높여야 할지 고민하는 개발자를 위한 책이다.
프로그램 성능을 최적화하는 정석은 없다. 시스템 환경과 프로그램의 목표, 중점적으로 처리해야 할 사항, 정책에 따라 최적화하는 방법은 달라진다. 그래서 최적화가 어렵고 힘든 것이다. 이 책은 오랫동안 최적화란 주제를 고민하고 많은 실행착오를 거치면서 정리한 저자의 노하우가 담겨 있다. 이 책은 단순히 최적화하는 코드를 알려주는 것이 아니라, 최적화의 개념과 어떻게 하면 상황에 맞는 최적화를 할 수 있을지 그 개념과 원리를 알려 준다. 저자가 프로그램 최적화에 관해 고민하고 접근했던 순서대로 이야기를 풀어가므로, 최적화라는 어려운 주제를 쉽고 재미있게 따라갈 수 있을 것이다.
이 책은 <기초편>, <심화편>, <명령어 정리편>으로 구성되어 있으며, 각 도서의 내용은 다음과 같다.
① CPU 최적화 프로그래밍 노트 <기초편>
: CPU의 특성을 알아보고 최적화를 위해서 알아야 할 기본적인 내용을 살펴본다.
② CPU 최적화 프로그래밍 노트 <심화편>
: 예제를 통해서 최적화하는 방법을 살펴보고 64비트 환경에서는 어떻게 최적화하는지 알아본다.
③ CPU 최적화 프로그래밍 노트 <명령어 정리편>
: 최적화하는 데 알아야 할 데이터 타입과 내장함수, 그리고 SSE 명령어를 살펴본다.
대상 독자
선배 개발자가 알려주는 프로그램 최적화 이야기
IT 분야에 입문하여 시스템이나 프로그램을 만드는 동안, 누구나 한번은 최적화에 관해서 고민하게 된다. 자기가 만든 프로그램의 성능을 높이는 건 모든 개발자가 가지고 있는 욕심이자 고민이다. 그리고 이러한 고민을 선배 개발자에게 말하면, "최적화하려면 어셈블리어를 해야 한다", "최적화해 주는 전용 프로그램을 이용해서 코드를 변환해야 한다"라는 조언을 듣게 되는 데, 고가의 최적화 프로그래밍을 이용하기는 쉽지 않다.
이 책은 최적화를 고민하는 개발자에게 어셈블리어를 이용하여 프로그램 성능을 최적화하는 방법을 알려준다. 최적화에 대한 단편적인 지식이나 방법보다는 최적화를 위한 기본 지식과 개념, 최적화 방법 등 최적화를 위한 근본적인 것들을 알려준다. 이번 <명령어 정리편>에서는 최적화를 위한 명령어를 살펴본다. 최적화하는 데 어떤 명령어를 어떻게 사용하는지만 알아도 최적화의 반은 끝낸 것이다. <명령어 정리편>을 통해서 CPU 레지스터에 의한 데이터 타입과 내장함수, SEE 명령어의 특징과 사용방법에 알게 될 것이다.
1장 CPU 레지스터에 의한 데이터 타입
2장 내장 함수
3장 SSE 명령어를 이용한 프로그래밍
3.1 SSE 데이터 이동 명령어
3.2 SSE 산술연산 명령어
3.3 SSE 논리연산 명령어
3.4 SSE 비교연산 명령어
3.5 SSE 셔플 및 언팩 명령어
3.6 SSE 데이터 형변환 명령어
3.7 캐시 기능 컨트롤 명령어
3.8 64비트 SIMD 바이트/워드 명령어
3.9 SSE 명령어를 이용한 예제 코드
4장 SSE2 명령어를 이용한 프로그래밍
4.1 데이터 이동 명령어
4.2 산술연산 명령어
4.3 논리연산 명령어
4.4 비교연산 명령어
4.5 셔플 및 언팩 명령어
4.6 데이터 형변환 명령어
4.7 캐시 기능 컨트롤 명령어
5장 SSE3/SSSE3 명령어를 이용한 프로그래밍
5.1 x87 FPU를 이용한 정수형 변환 명령어
5.2 SIMD 정수형 명령어
5.3 SIMD 실수형 명령어
5.4 횡적 연산 명령어
5.5 Packed 데이터 절대값 구하기
5.6 MAD 명령어
5.7 셔플 명령어
5.8 Packed 사인
5.9 Packed 정렬
6장 SSE4.x 명령어를 이용한 프로그래밍
6.1 Packed 정수형 곱셈 명령어
6.2 dot 연산 명령어
6.3 스트리밍 로드 명령어
6.4 블랜딩 명령어
6.5 Packed 정수형 MIN/MAX
6.6 선택적 FP 라운딩 명령어
6.7 데이터 삽입 추출 명령어
6.8 Packed 정수형 데이터 형변환 명령어
6.9 그 외의 SSE 4.1에서의 유틸리티 명령어
6.10 SSE 4.2의 문자열 처리 기능
6.11 추가된 Packed integer 비교 명령어
6.12 애플리케이션을 위한 하드웨어 액셀레이터 명령어
6.13 예제
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.