로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

안드로이드 SIMD 병렬 프로그래밍

 [ARM NEON을 활용한 (반양장본)]
   
지은이 정영훈, 최규달 공저   |   출판사 프리렉  |   발행일 2014년 06월 26일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 32,000원28,800원 10%
마일리지 5% 1,600원
발행일 2014-06-26
ISBN 8965400708 | 9788965400707
기타정보 국내서 | 496쪽 | 일반
예상출고일 금일 가능 (근무일기준)
배송비 무료배송
   
프로그래밍
종합지수 0p
   
 

『안드로이드 SIMD 병렬 프로그래밍』은 SIMD 병렬 프로그래밍을 이용하여 애플리케이션의 성능을 향상시키는 방법을 다룬다. 또한, 안드로이드 프로그래밍 초보자를 위해서 SDK와 NDK를 설치하고 실행하는 과정을 자세하게 설명한다. 더불어 NEON 병렬 함수를 그림과 예제로 하나하나 설명하므로 병렬 프로그램 초보자라도 SIMD 병렬 프로그램을 쉽게 이해할 수 있도록 하였다. 그리고 실습과 활용 예제를 통해 NEON 병렬 함수를 실무에 쉽게 적용할 수 있고, ARM 아키텍처의 특성을 이용한 최적화 방법도 설명하여 애플리케이션의 성능을 향상할 수 있는 모든 방법을 다룬다.



안드로이드 SIMD 병렬 모델 NEON
ARM SIMD는 명령어 수준의 병렬 프로그램 모델로, 일반적으로 SIMD(Single Instruction Multiple Data)로 불린다. SIMD는 가장 작은 수준의 병렬 프로그래밍으로 하나의 명령어로 여러 데이터를 처리하는 데이터 병렬 프로그램이며 ARM의 NEON이 여기에 속한다.
NEON은 안드로이드 운영체제를 탑재한 스마트폰에 사용되는 병렬 프로그래밍 언어이다. NEON의 병렬 처리는 스마트폰의 멀티미디어 데이터를 효율적으로 처리하고, 더 빠른 성능을 보장한다. 따라서 현재 다양한 스마트폰과 태블릿 PC에 적용되고 있다.

01장 안드로이드와 병렬 처리
1. 모바일 기기와 병렬 프로그램
1.1 모바일 기기의 요구 사항
1.2 병렬 프로그램을 활용한 요구 사항 충족
1.3 안드로이드 병렬 프로그램의 종류
1.4 SIMD 모델을 선택하는 이유
1.5 안드로이드 병렬 프로그램의 활용 분야
2. 안드로이드 SIMD 병렬 모델 NEON
2.1 NEON의 기본 개념
2.2 NEON 애플리케이션의 동작 구조
2.3 NEON의 특징과 장점
2.4 NEON의 활용 분야
2.5 NEON을 사용하는 이유: NEON과 일반 애플리케이션의 성능 비교
2.6 NEON 적용 과정
2.7 NEON 사용 방법
2.8 NEON 프로그램의 어려운 점
2.9 ARM NEON 병렬 프로그램의 역사
3. 모바일 기기의 전망

02장 안드로이드 SDK의 이해와 환경구축
1. 안드로이드
1.1 안드로이드의 역사
1.2 안드로이드의 버전
1.3 안드로이드의 성공 요인과 특징
2. 안드로이드 SDK
2.1 안드로이드 SDK의 구성
2.2 안드로이드 SDK의 최소 사양
2.3 안드로이드 개발에 필요한 도구들
3. SDK 설치하기
3.1 JDK 설치하기
3.2 이클립스와 안드로이드 SDK 설치하기
4. 안드로이드 애플리케이션 실행하기
4.1 AVD(에뮬레이터) 설정하기
4.2 Hello World 애플리케이션 실행하기

03장 안드로이드 NDK의 이해와 환경구축
1. 안드로이드 NDK
1.1 안드로이드 NDK란
1.2 안드로이드 NDK의 기능
1.3 NDK의 장단점
1.4 안드로이드의 내부 구조
1.5 Java와 NDK 애플리케이션의 실행 차이
1.6 NDK의 구성
1.7 NDK의 최소 사양
2. NDK 설치하기
3. 이클립스에 설정하기

04장 JNI의 이해
1. JNI란
2. JNI 문법
3. 자바에서 JNI(네이티브 코드) 호출
4. JNI 자료형 선언
5. JNI 배열
6. JNI에서 자바 클래스와 함수
7. 대용량 메모리 전달
8. Android.mk 파일
9. Application.mk 파일
10. JNI를 마치며

05장 스마트폰으로 애플리케이션 업로드
1. USB 업데이트
2. 이클립스를 통한 애플리케이션 업로드

06장 NEON의 기본 개념
1. NEON의 자료형
2. NEON 벡터의 크기
3. NEON 레지스터
4. ARM과 NEON 명령어
5. NEON 벡터 자료형
6. NEON의 레인
7. NEON의 연산
8. NEON의 플래그
9. NEON 함수 형식: 내장 함수
10. NEON 연산의 제한
11. NEON 함수 사용하기
11.1 헤더 파일 설정
11.2 Application.mk 파일 설정
11.3 Android.mk 파일 설정
11.4 CPU에서 NEON 함수의 사용 가능 여부 확인
12. 이클립스에서 NEON 실행하기
13. NEON의 기본 개념을 마치며

07장 NEON 로드와 저장 함수
1. NEON 로드 함수
1.1 단일 로드 함수
1.2 복수 로드 함수
2. NEON 저장 함수
2.1 단일 저장 함수
2.2 복수 저장 함수
3. 이 장을 마치며

08장 NEON 산술 연산과 확장
1. NEON의 기본 산술 연산
1.1 더하기 함수
1.2 빼기 함수
1.3 곱하기 함수
1.4 나눗셈
1.5 인접 레인 더하기 함수
1.6 최댓값 함수
1.7 최솟값 함수
1.8 NEON의 산술 연산 정리
2. NEON의 산술 연산 확장
2.1 Long 더하기 함수
2.2 Wide 더하기 함수
2.3 포화 더하기 함수
2.4 Narrow 더하기 함수
2.5 벡터 2개의 평균 구하기 함수
2.6 Long 빼기 함수
2.7 Wide 빼기 함수
2.8 포화 빼기 함수
2.9 Narrow 빼기 함수
2.9 빼기 후 평균 함수
2.11 Long 곱하기 함수
2.12 곱한 후 가감 함수
2.13 Long 인접 레인 더하기 함수
2.14 Long 인접 레인 누계 함수
2.15 인접 레인 최댓값과 최솟값 함수
2.16 산술 연산 확장에 대하여
3. 연습 예제: GetSum( ) 함수

09장 NEON 레인 설정과 조회
1. NEON 레인 설정
1.1 레인 추출 함수
1.2 레인 설정 함수
1.3 비트 패턴을 이용한 레인 초기화 함수
1.4 특정 레인으로 벡터 초기화 함수
1.5 레인 브로드캐스트 함수
1.6 레인 설정 함수를 마치며
2. NEON 레인 조회
2.1 레인 조회 함수
2.2 레인 조회 확장 함수
2.3 레인 조합 함수
2.4 레인 교환 함수
2.5 레인 조회 함수를 마치며

10장 NEON 비트와 시프트 연산
1. 비트 연산
1.1 NEON 논리 연산 함수
1.2 비트 단위 선택 함수
1.3 부호 비트 변환 함수
1.4 그 외 비트 관련 함수
2. NEON 시프트 연산
2.1 NEON Shift 함수
2.2 오른쪽 Shift 함수
2.3 왼쪽 Shift 함수
2.4 Shift 후 삽입 함수
2.5 나눗셈 구현
3. 비트와 시프트 연산을 마치며

11장 NEON 비교 연산과 절댓값
1. 비교 연산
1.1 같음(==) 비교 함수
1.2 크거나 같음(>=) 비교 함수
1.3 작거나 같음(<=) 비교="" 함수="" 1.4="" 큼(="">) 비교 함수
1.5 작음(<) 비교="" 함수="" 1.6="" 테스트="" 비트="" 함수="">
1.7 비교 연산을 마치며
2. 연습 예제: NeonSelect( ) 함수
3. 절댓값
3.1 절댓값 함수
3.2 절대 차이 함수
3.3 절대 차이 누계 함수
3.4 절댓값 비교
3.5 절댓값 연산을 마치며
4. 연습 예제: NeonABS( ) 함수
5. 연습 예제: 최댓값 함수

12장 NEON 변환 연산
1. NEON 변환 연산
1.1 벡터 결합 함수
1.2 벡터 분할 함수
1.3 벡터 레인 축소 함수
1.4 벡터 레인 확대 함수
1.4 실수 형변환 함수
1.5 NEON 변환 연산을 마치며
2. NEON 재해석 함수
3. 연습 예제: 표준편차 함수

13장 NEON 수학, 이항, 스칼라 연산
1. 수학 연산
1.1 역수 함수
1.2 역수 제곱근 함수
1.3 역수 확장 함수
1.4 역수 제곱근 확장 함수
1.5 역수를 이용한 나누기 연산
2. NEON 이항 연산
2.1 벡터 교환 함수
2.2 인터리브와 디인터리브
3. NEON 스칼라 연산
3.1 스칼라 곱하기
3.2 스칼라 벡터 Long 곱하기
3.3 스칼라 곱하기 누계
3.4 스칼라 벡터 곱하기 누계
4. 연습 예제: 4×4 행렬 연산
5. 연습 예제: 4×4 행렬의 연산 속도 개선

14장 NEON 활용
1. 흑백 이미지 변환
2. Fade In, Fade Out
3. Sharpen 필터
4. Sharpen 필터 성능 개선
5. Sharpen 필터 + OpenMP

15장 ARM 아키텍처
1. ARM 아키텍처
2. ARM 명령어
3. ARM 파이프라인
4. 분기 예측
5. Cortex-A9
6. ARM 아키텍처의 중요성

16장 애플리케이션 최적화
1. 최적화란
2. 최적화 과정
3. 최적화 적용
3.1 최적화 옵션 사용
3.2 ARM 프로세서와 아키텍처 지정을 통한 최적화
3.3 자동 벡터화를 이용한 최적화
3.4 OpenMP와 NEON의 조합
3.5 파이프라인 명령어 제어
3.6 루프 구문 최적화
4. 최적화를 마치며

부록
1. NEON 어셈블리 명령어
2. 인라인 어셈블리어

저자 : 정영훈

저자 정영훈은 병렬 컴퓨팅의 전문가이며 최규달의 친구이다. 최근에는 스마트폰 병렬 컴퓨팅을 이용한 애플리케이션 최적화에 관심을 가지고 연구하고 있다. 저서로는 『SIMD 병렬 프로그래밍』과 『OpenMP 병렬 프로그래밍』, 『CUDA 병렬 프로그래밍』 등이 있다.



저자 : 최규달

저자 최규달은 피처폰 시절부터 프로그램을 개발했고, 병렬 컴퓨팅을 활용하여 영상 처리를 가속하는 업무를 담당하고 있으며, 최근에는 스마트폰 병렬 프로그램 최적화를 진행하고 있다. 저서로는 『Cilk Plus 병렬 프로그래밍』과 『키넥트 프로그램 개발 입문서』 등이 있다.


등록된 서평이 없습니다.
모두의 파이썬...
이승찬
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
Node.js 교과서 : 기본기에 충실한 노드제이에스 10 입문서...
조현영
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
초보자를 위한 PHP 200제...
김태영
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
정영훈 의 최근 저서
 
Allegro OrCAD PCB Designer를 이용한 PCB설계(Version 16.6)
21,500원
(2%↓+1%)
 
빅데이터 시스템 구축 가이드
25,200원
(10%↓+5%)
 
PCB Designer를 이용한 PCB설계
19,400원
(3%↓+0%)
 
프로그래머의 리더십
13,500원
(10%↓+5%)
 
파이썬 해킹 입문
20,700원
(10%↓+5%)
 
프리렉 출판사의 신간
인공지능을 위한 수학
이시카와 아키히코 저
22,500원
(10%↓+5%)
 
디자인 씽킹 플레이북
마이클 루릭, 페트릭 링크, 래리 파이퍼 저
19,800원
(10%↓+5%)
 
더 괜찮은 QA가 되기 위한 프랙티컬 테스트 자동화
정상미 저
27,000원
(10%↓+5%)
 
ZBrush 게임 캐릭터 디자인
김현 저
22,500원
(10%↓+5%)
 
머신러닝 딥러닝 바로가기
요시카와 하야토 저
22,500원
(10%↓+5%)
 
이메일주소수집거부