Intel TBB 사용법

Code 2014.01.19 06:19

* Intel TBB( Threading Building Blocks )
http://threadingbuildingblocks.org/
tbb 4.2 update2 - Visual studio 2013 지원, 직접 소스 빌드 필요
멀티 프로세서에서 성능 향상을 위해, 인텔이 개발한 C++ 템플릿 라이브러리

* 사용방법
- 환경변수 설정
    TBBROOT = "TBB 설치 경로"(압축푼 경로)
    TBB_BIN_DIR = "TBB 설치 경로"\bin

- Project Property 설정
    - C/C++ -> Preprocessor Definitions :
        TBB_USE_DEBUG 추가(Debug 버전만, Release 버전은 필요없음)
   
    - Library 경로추가
- Linker -> Additional Library Directorie :
$(TBBROOT)\lib\ia32\vc10  <-- Visual studio 2010의 경우

    - 라이브러리 추가
- Linker -> Input : Additional dependencies :
    Debug 버전 : tbb_debug.lib
    Release 버전 : tbb.lib


//===============
- 에러 "Could not determine path to TBB libraries" 해결 방법
    - Visual Studio 의 다른 버전이 설치된 경우 최상위 버전으로 경로를 인식한다.
    - examples/common/copy_libraries.bat 수정
        - VC10(VS2010) 의 경우 아래 두개를 주석 처리 한다.           

if ("%VS90COMNTOOLS%")  NEQ ("") set vc_dir=vc9
if ("%VS100COMNTOOLS%") NEQ ("") set vc_dir=vc10
rem if ("%VS110COMNTOOLS%") NEQ ("") set vc_dir=vc11
rem if ("%VS120COMNTOOLS%") NEQ ("") set vc_dir=vc12

    - 다른 방법 : %PlatformToolSet% 변수 활용,
        - Project Property 설정을 수정해야 한다

Build Event -> Post-Build Event : command line
call "$(SolutionDir)\..\..\..\common\copy_libraries.bat"  ia32 debug "$(OutDir)"  $(PlatformToolset)
        - $(PlatformToolset) 변수를 추가 하되 따옴표로 묶으면 안됨

copy_libraries.bat



//============
* 성능 비교
examples\GettingStarted\sub_string_finder 프로젝트에 sub_string_finder_extended를 실행해 보면
serial에 비해  parallel의 속도가 4.5배 이상 빠른 것으로 나온다.



//===============
* 직접 소스 컴파일
    - 소스코드 다운로드 (source code download)
https://www.threadingbuildingblocks.org/download


tbb42_20131118oss_src.tgz



//===============

// 참고
__TBB_MIC_OFFLOAD
  인텔 MIC(Many Integrated Core) = GPGPU(General-Purpose computing on Graphics Processing Units)
  GPGPU = GPU를 사용하여 CPU가 담당했던 계산을 수행하는 기술
  Offload = CPU가 처리할 일을 GPGPU로 보내는것
 http://minjang.egloos.com/viewer/2849241

저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 코덴스

댓글을 달아 주세요