출처: http://codens.info/642
* Intel IPP ( Integrated Performance Primitives )
http://software.intel.com/intel-ipp
문서 : http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation
버전별 출시 시기
6.1 (2009/06/28)
7.1 (2012/07/16)
8.0 (2013/06/26)
//=========
* IPP 다운로드
http://software.intel.com/en-us/intel-integrated-performance-primitives-evaluation-options
가서 평가판 다운로드를 신청한다.
1시간안에 이메일이 오고 경로를 따라가 인텔에 가입한다. 1시간안에 로그인 할수 있다.( 바로 안된다.)
- 설치된 것을 다른 폴더로 옮기고 프로그램 제거를 해도
아래설정만 하면 계속사용은 가능(별도의 락은 없지만 구입해서 써야죠)
//========
* 환경변수 추가
- IPPROOT : 설치경로\ipp
- INTEL_DEF_IA32_INSTALL_DIR : 설치경로 (옵션)
- ex) C:\Program Files (x86)\Intel\Composer XE 2013 SP1\ (끝에 '\' 확인)
- PATH 경로 추가 (DLL):
C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\ipp
- TBB ( Threading Building Blocks ) 복사 : 설치경로\TBB
TBB 사용법 설명 http://codens.info/641
//========
* Project Properties 설정
- Link
- Library 경로추가
- Linker -> Additional Library Directorie :
$(IPPROOT)/lib/ia32;$(IPPROOT)/../compiler/lib/ia32;$(TBBROOT)\lib\ia32\vc10
- 라이브러리 추가
- Linker -> Input : Additional dependencies :
ippcore.lib;ipps.lib;ippch.lib;libmmt.lib;libiomp5md.lib;
//=================
* example build
http://software.intel.com/en-us/articles/code-samples-for-intel-integrated-performance-primitives-library#samples_status
- 8.0 부터는 sample 대신 example을 제공한다.
- 위치 : %IPPROOT%/example/ipp-examples.zip
> "%IPPROOT%\bin\ippvars.bat" ia32 //환경변수 설정
> build.cmd --sample=ipp-examples --arch=ia32 --ws=vs2010 --ipp=dynamic --conf=debug
- 싱글쓰레드가 권장되고있다.
__cmake\ipp-examples.ia32.vs2010.dynamic\ipp-examples.sln이 생성된다
- 빌드시 cannot open file 'tbb_debug.lib' 에러가 나면
Library 경로추가 : $(TBBROOT)\lib\ia32\vc10
- 실행시 tbb_debug.dll이 없다고 나오면
실행경로 추가 : $(TBBROOT)\bin\ia32\vc10
//========================================================
* v8.0 Sample 'Life' 프로젝트 빌드
- 오류 The application for the project type (.icproj) is not installed
http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-the-application-for-the-project-type-icproj-is-not-installed
- 인텔 컴파일러 프로젝트(.icproj)를 Visual studio가 쓸수 있게 변경해야 한다.
ICProjConvert 가 이 작업을 하지만 Intel C++ Compiler가 설치되있어야 한다.
인텔 컴파일러를 설치하면 C:\Program Files (x86)\Common Files\Intel\Shared Files\ia32\Bin 이 경로에 ICProjConvertxxx.exe 가 있다.
> ICProjConvertxxx.exe test.sln /VC
//====
* CheckIPPCilkLife 빌드
- Cilk 사용법 PDF 다운로드
병렬프로그래밍세미나_Cilk Plus_20110625_v0.93.pdf
- Intel C++ Compiler 가 필요(유료)
평가판 신청 http://software.intel.com/en-us/c-compilers (Intel® C++ Composer XE 다운)
- Intel® Cilk++ SDK (Intel Composer XE에 포함)
- C 언어용 병렬프로그램 확장
- SDK 만 다운로드 해서는 사용불가
http://software.intel.com/en-us/articles/download-intel-cilk-sdk
- 프로젝트에 include , library 경로 추가
C:\Program Files (x86)\Intel\Composer XE 2013\compiler\include
C:\Program Files (x86)\Intel\Composer XE 2013\compiler\lib
* 에러 cilk_spawn "undeclared identifier"
- Intel Compiler 로 설정
- 프로젝트 속성 -> General -> Platform Toolset : Intel C++ Compiler XE
//=====
* CheckIPPTBBLife 빌드
- TBB 필요
TBB 사용법 설명 http://codens.info/641
//==========
* 다른 기능으로 변경해서 Visual Basic Life 프로젝트 실행하기
- 다음 함수로 가서 주석을 바꿔 가며 실행한다.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
- 성능비교 (fps)
Debug | 최적화(Rease) | |||
Compiler | MS | Intel | MS | Intel |
일반 | 12 | 34 | 35 | |
IPP | 116 | 117 | 117 | |
IPP+TBB | 126 | 131 | 131 | |
IPP+Cilk | 127 | 131 |
IPP의 성능이 대단하다
TBB와 Cilk의 성능은 비슷하다.
MS 와 Intel의 컴파일러 성능은 비슷하다.
//===============
* 코드 샘플 다운로드(code sample download) & 빌드
http://software.intel.com/en-us/articles/code-samples-for-intel-integrated-performance-primitives-library
• Audio/Video/Image/Speech encoding/decoding (H.264, MPEG-4, MP3, JPEG, JPEG2000, G.729, more)
• Data Compression libraries to suport zlib, gzip and bzip2
• Image/Signal Processing
Source Code Examples from Intel IPP book
http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-intel-ipp-source-code-examples
//==============
* CMake로 sample vs2010 프로젝트 만들기
- CMake 실행파일 경로 지정
- v8.0
w_ipp_8.0.0.005_legacy_samples.zip
- builder폴더로 가서 build.cmd실행
> build --sample=uic --arch=ia32 --ws=vs2010
그외 샘플이름만 변경 audio-video-codecs , data-compression , image-codecs , speech-codecs
- v7.1
http://software.intel.com/en-us/articles/code-samples-for-intel-integrated-performance-primitives-intel-ipp-library-71
- perl 설치후 builder폴더로 이동
> perl build.pl --cmake=audio-video-codecs,ia32,vc2010,d,mt,debug
그외 샘플이름만 변경 audio-video-codecs , data-compression , image-codecs , speech-codecs
//============
* 에러 처리
LINK : fatal error LNK1104: cannot open file 'threaded/ippcore.lib'
전처리기에 _IPP_PARALLEL_DYNAMIC 이들어가서 생기는 문제,
8.0버전부터 멀티쓰레드를 권장하지 않는다
//================================================
// 참고
//인텔 제품들 기능
* Intel® C++ Composer XE 2013 <--
Intel® C++ Compiler
Intel® Fortran Compiler
Intel® MKL (Math Kernel Library)
Intel® IPP (Integrated Performance Primitives)
Intel® TBB (Threading Building Blocks)
Intel® Cilk™ Plus (Parallel Programming Models)
//
* Intel® Parallel Studio XE 2013
Intel® C++ Composer XE 2013
•Intel® VTune™ Amplifier XE – Advanced Threading and Performance Profiler
•Intel® Inspector XE – Memory and Threading Debugger
•Intel® Advisor XE – Threading Prototyping Tool
//
* Intel® Inspector XE 2013
dynamic memory and threading error detector and debugger
* Intel® VTune™ Amplifier XE
Optimize Serial and Parallel Performance
* Intel® Advisor XE
threading prototyping tool
'언어 > C++' 카테고리의 다른 글
Boost 라이브러리 설치 (0) | 2018.01.20 |
---|---|
마이크로초(Micro Second) 구하기 (0) | 2018.01.20 |
OpenCV + IPP + TBB 사용법 (0) | 2018.01.20 |
Intel TBB 사용법 (0) | 2018.01.20 |
windows IPP 설치 및 VC++ 작업환경 구성하기 (0) | 2018.01.20 |