ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Concept of Deep Learning for Autonomous Driving (2) 와~~
    카테고리 없음 2020. 2. 11. 02:19

    전통적 프로그래밍 vs Deep Learning 프로그래밍을 비교해보자 (하나) 전통적 프로그래밍


    >


    -입력과 출력을 아는 sound- 알고 있는 입력에 맞게 출력을 판정하는 프로그램 작성-전망했다 덱로 Output을 출력하는 프로그램-입력된 데이터에 근거하여 동작 상태에 의해서 Output판정-입력 데이터 외에 여러 환경 요소에 영향을 받는 시스템의 경우 Output이 부정확(확률적 사건 등)​ 2)DL프로그래밍


    >


    -입력 데이터 외에 해당 글 솜씨에 영향을 주는 Parameters/Features적용-Parameters/Features을 통한 수학적 모델링 적용( 많은) 알려진 Parameters을 통한 모델링 학습-추론(Inference)의 결과가 정밀하게 될 때까지 지속 학습- 알지 않은 데이터의 입력을 통한 추론-Deep Learning은 알려진 데이터를 통해서 알고리즘(Program)을 Training하는 단계와 Training된 알고리즘을 적용하고 추론(Inference)단계로 구성 ​ 3)On the Edge(On-device AI)-기존에 DL은 대량의 데이터 성능의 때 문에 Network에 연결된 Server를 이용- 하지만 최근 DSP, CPU, FPGA, AP등의 성능력이 향상하고 서버 기능이 없는 Device다만 스토리 차원에서 DL을 적용-Device의 계단에서 DL은 알고리즘 학습을 서버/PC환경에서 진행하면서 학습된 알고리즘을 붙인 스토리에 이식하고 Inference만 수행-그래서 알려지지 않은 데이터를 통한 추론의 결과가 만족하지 못할 경우 재학습을 해야 하지만 경찰 PC/서버 차원에서 수행 ​ 4)Embedded System SW(BSP/Middleware의 엔지니어의 입장에서 Deep Learning을 위한 대부분의 구성 요소를 표현한다.


    >


    (1)Embedded System(On the Edge)구성(왼쪽 블록도)-즉, 새로운 data가 입력이 되면 추론을 하는 영역-최상위 Application에서 추론한 결과를 이용하고 자율 주행을 위한 알고리즘이 구동하게 된-LiDAR, Radar센서 데이터, Camera영상 분석 등에 Deep Learning의 활용 이를 통해서 차량 주행 환경 변수에 의해서 센서 본인 주도하기 정보의 판단에 신뢰도 높은 의사 결정을 실행할 수 있는 어떤 소리-자율 주행을 위한 Deep Learning은 infernece반응 속도가 중요하게 Embedded System내의 어떤 Resource(CPU, GPU, DSP, NPU, FPGA등)을 이용하느냐에 따라서 성능 차이가 날수 있는지 소리 ​(2)Deep Learning 모델링(Server/PC 환경) 구성(오른쪽 블럭도) 처리 데이터(영상, 소움슨, 텍스트, 센서 데이터 등)에 그렇게 적합한 DNN 네트워크를 결정하고 그에 의한 DL플레로 워크 선정 - 알려진 다량의 데이터를 입력하여 DL 모델링을 학습(Training) - 추론의 정확도가 적절한 수준이 될 때까지 반복 학습 - 적절한 모델링이 완성되면 DL 컴파일러에 컴파일하여 On the Edge에 탑재 - 어떤 DNetwork, DL Framework을 적용할지 처리해야 할 데이터의 타입입니다.워크를 어떻게 적용하느냐에 따라서 적절한 compiler적용해야 하며 On the Edge에서 DL지원은 부족 이야기, Network, Framework의 종류 및 그것에 의한 컴파일 환경을 얼마나 자신이 잘 지원하느냐가 중요하다. ​(3)Vendor SDK플랫폼-AP Vendor Specific 하게 컴파일 DL개발 및 컴파일을 위한 환경 제공, 아래는 ARM사의 DL SDK예


    >


    (4)DL Runtime-PC Host에서 학습된 DL모델은 각 Vendor지에용크들의 고유의 SDK를 통해서 변환이 되고, AP내의 CPU Core에 DL Rutime에 의해서 GPU/VPU/DSP/NPU/FPGA을 통한 Deep Learning을 수행하게 된다. 따라서 DL Runtime도 AP Vendor마다 고유한 구조를 갖게 된다. ​ 5)DL Compile플랫폼-AP Vendor마다 고유의 GPU/VPU/DSP/NPU/FPGA등을 위한 Deep Learning을 수행할 수 있도록 컴파일 및 콤보 틴 환경을 SDK의 형태로 공급-XLA(Google), NNVM/TVM, Glow(Facebook), DLVM(Apple/Swift)등의 컴파일 스택 존재-NNVM/TVM컴 등을 통해서 통일된 컴파일 환경을 공급하려는 노력 중)NNVM/TVM컴파일러-NNVM(Neural Network Virtual Machine):다양한 DeepLearning framework에서 생성되는 Graphs를 한사코화, 최적화하는 IR(Intermediate Representation) stack - TVM(Tensor Virtual Machine) : NNVM의 Backend에서 Tensor IR 처리 stack이며, C++/Python/Java 등의 언어지원, Halide IR, DLPack 모델에서 Tensor 처리하는 것은 Tensor, Howles, GUve 등 GU의 특성에 맞게 처리합니다. Loop program화할 수 있도록 Tensor를 모델링 한다. Halide IR: Symbolic Arithmetic IR Module - . DLPack: Tensor Structure In Memory Module - . NNVM/TVM 구조수 역


    >


    (2)NNVM/TVM콤파하 나에게-XLA(Accelerated Linear Algebra):구글 TensorFlow를 컴 섬인지 위한 domain-specific콤파하 나에게. HLO(High Level Optimizer)로부터 computations graphs를 입력 받아 CPU/GPU/TPU에 맞는 기계어 발생-. JIT 컴파하나 방식과 AOT 컴파하나 방식 대응-. JIT 컴파싱 기법을 사용하여 랜터인데 사용자가 발생한 Tensor Flow 그래프를 분석하여 실제 랜터입니다. 차원과 유형에 맞게 최적화하여 여러 연산을 합성하여 이에 대한 효율적인 원어민 기계어 코드가 발생. XLAJIT 컴파하나 개요


    >


    :tfcompile은 AOT(ahead-of-time)컴(1을 위한 툴(AOT컴(1러시아는 목표 시스템의 기계어와 무관한 중간 언어의 형태로 배포된 뒤 목표 시스템에서 인터프리터, 자신 JIT(just-in-time)컴(1등 기계어 번역을 통해서 실행하는 중간 언어를 미리 목표 시스템에 맞는 기계어로 번역하는 방식). Embedded 환경에 맞춰 메모리 사용량을 최소화. PC환경에서 executable code새 목소리로 TensorFlow Runtime을 사용하지 않는 소리-. XLA AOT컴(1의 개요


    >


    -Glow, DLVM컴(1러시아도 비슷한 구조로, Computation Graph컴(1부와 LLVM을 통한 Low level실행 코드를 발생하는 부분으로 구성되 ​-LLVM(Low Level Virtual Machine)컴(1러시아. Embedded환경에 맞게 메모리 사용량을 최소화.Low level complier를 수행하는 컴(1러시아(CPU/GPU등에서 수행 가능한 코드에 발생). Frontend, Optimizer, Backend 구분


    >


    -.일반적인 컴파일러에서 LLVM Front-end는 GCC(ARM), Clang(X86)이 수행함과. Deep Learning에서는 LLVM Front-end는 각각의 DL 컴파일러가 만들어낸 Computation Graph가 된다. Frontend는 각 언어(C/C++/..), Computation Graph IR로 작성된 코드를 LLVMIR 모델로 변환. 코드 최적화(일반적인 컴파일러가 코드 최적화하도록...).Low level HW에 맞추어 기계 코드 발생 ​-20일 9.02. 것 5-


    댓글

Designed by Tistory.