Intel IPP 사용법

Code/Desktop 2014. 1. 19. 11:55

* Intel IPP ( Integrated Performance Primitives )


   
http://software.intel.com/intel-ipp
문서 : http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-documentation

ipp_user guide 8.0 u1.pdf


버전별 출시 시기
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



반응형
Posted by codens