본문 바로가기

[2020년 파트-김성민개발자] CONNX, Packetvisor

semih 게시글 작성 시각 2020-07-28 15:52:18 게시글 조회수 1765
글로벌 전문개발자 파트
CONNX, Packetvisor
김성민
CONNX
CONNX은 AI Engine 표준인 ONNX(Open Neural Network eXchange)를 C 언어로 구현한 ONNX Runtime입니다. ONNX은 Google의 Tensorflow나 Facebook의 PyTorch같은 AI 플랫폼 간의 모델 호환성을 보장하기 위한 표준으로 AI 모델을 배포하기 위한 표준으로 자리잡고 있습니다. 대부분의 ONNX Runtime은 Python 기반으로 개발하기엔 편리하지만 Embedded 기기에 내장하기엔 지나치게 크기가 크고 느린 단점이 있습니다. 그 것을 극복하기 위해 C 언어 기반의 ONNX Runtime을 구현하고 있습니다. AI 분야의 Hello World 격인 MNIST 예제를 구동했을 때 Tensorflow에 비해 CONNX이 12배 가량 높은 성능을 보입니다. 또한 CONNX은 1MB 이하의 크기로 수백MB를 필요로 하는 Python에 비해 크기가 작아 Embedded 기기를 위한 현존하는 유일한 AI 엔진이라 할 수 있습니다.
경쟁 기술로는 Microsoft의 ONNX Runtime(C#), Google의 Tensorflow(Python), Facebook의 PyTorch(Python), Apache의 MXNet(Java) 등이 있고, Embedded를 대상으로 하는 ONNX runtime은 CONNX이 유일합니다.

Packetvisor
Packetvisor는 Linux의 XDP에 기반한 Packet processing framework입니다. XDP는 Linux의 최근 커널에 포함된 기능으로 eXpress Data Path의 약자입니다. 고성능의 패킷 처리를 위해 Intel의 DPDK(Data Plane Development Kit)는 H/W 종속되는 모델을 사용했지만, Linux의 XDP는 H/W에 종속적인 부분을 eBPF라는 형태로 표준화 함으로써 Packet processing을 손쉽게 구현할 수 있는 사실상의 표준으로 자리를 잡아가고 있습니다. Packetvisor는 C 언어로 복잡한 프로그래밍을 해야 하는 XDP의 단점과, GPL2 라이선스에 종속되는 단점을 보완하기 위한 라이브러리로, C++로 직관적인 패킷 처리와 다양한 라이센스를 사용해 패킷 처리 프로그램을 작성할 수 있는 중간 계층 역할을 합니다. Packetvisor는 Edge의 raw packet processing을 하기 위한 가장 쉬운 방법입니다.
경쟁 기술로는 fd.io의 VPP, OpenDataPlane 등이 있습니다. DPDK에 의존하지 않고 Linux kernel에만 의존하는 오픈소스는 Packetvisor가 유일합니다.
2020 년
인공지능(AI)

주요경력

2020년 3월 ~ 현재             성균관대학교 박사과정
2017년 10월 ~ 2019년 11월    ㈜구름네트웍스    기술이사
2017년 3월 ~ 2018년 2월    명지대학교 컴퓨터공학과    겸임조교수
2014년 2월 ~ 2017년 9월    ㈜구름네트웍스    대표이사
2012년 5월 ~ 2013년 2월    ㈜감동공장    기술이사
2009년 11월 ~ 2012년 1월    한국전자통신연구원    연구원
2007년 4월 ~ 2008년 9월    소프트포럼㈜    과장
2005년 9월 ~ 2007년 3월    한국국방연구원    전문연구원

 

전문분야

인공지능

 

활동커뮤니티

AI

 

활동 프로젝트 분야

AI, ONNX, Network, Linux XDP

 

프로젝트명

CONNX, Packetvisor

 

프로젝트 개요

CONNX
CONNX은 AI Engine 표준인 ONNX(Open Neural Network eXchange)를 C 언어로 구현한 ONNX Runtime입니다. ONNX은 Google의 Tensorflow나 Facebook의 PyTorch같은 AI 플랫폼 간의 모델 호환성을 보장하기 위한 표준으로 AI 모델을 배포하기 위한 표준으로 자리잡고 있습니다. 대부분의 ONNX Runtime은 Python 기반으로 개발하기엔 편리하지만 Embedded 기기에 내장하기엔 지나치게 크기가 크고 느린 단점이 있습니다. 그 것을 극복하기 위해 C 언어 기반의 ONNX Runtime을 구현하고 있습니다. AI 분야의 Hello World 격인 MNIST 예제를 구동했을 때 Tensorflow에 비해 CONNX이 12배 가량 높은 성능을 보입니다. 또한 CONNX은 1MB 이하의 크기로 수백MB를 필요로 하는 Python에 비해 크기가 작아 Embedded 기기를 위한 현존하는 유일한 AI 엔진이라 할 수 있습니다.
경쟁 기술로는 Microsoft의 ONNX Runtime(C#), Google의 Tensorflow(Python), Facebook의 PyTorch(Python), Apache의 MXNet(Java) 등이 있고, Embedded를 대상으로 하는 ONNX runtime은 CONNX이 유일합니다.

Packetvisor
Packetvisor는 Linux의 XDP에 기반한 Packet processing framework입니다. XDP는 Linux의 최근 커널에 포함된 기능으로 eXpress Data Path의 약자입니다. 고성능의 패킷 처리를 위해 Intel의 DPDK(Data Plane Development Kit)는 H/W 종속되는 모델을 사용했지만, Linux의 XDP는 H/W에 종속적인 부분을 eBPF라는 형태로 표준화 함으로써 Packet processing을 손쉽게 구현할 수 있는 사실상의 표준으로 자리를 잡아가고 있습니다. Packetvisor는 C 언어로 복잡한 프로그래밍을 해야 하는 XDP의 단점과, GPL2 라이선스에 종속되는 단점을 보완하기 위한 라이브러리로, C++로 직관적인 패킷 처리와 다양한 라이센스를 사용해 패킷 처리 프로그램을 작성할 수 있는 중간 계층 역할을 합니다. Packetvisor는 Edge의 raw packet processing을 하기 위한 가장 쉬운 방법입니다.
경쟁 기술로는 fd.io의 VPP, OpenDataPlane 등이 있습니다. DPDK에 의존하지 않고 Linux kernel에만 의존하는 오픈소스는 Packetvisor가 유일합니다.
 

프로젝트 특징

CONNX
AI 엔진 시장은 글로벌 기업들이 사활을 걸고 각축전을 벌이는 시장입니다. 또한 최근엔 미국에서 중국으로 군사용으로 사용될 AI 기술 판매를 금지하는 등 AI 기술 발전이 국가 경쟁력과 안보를 좌우할 수 있는 기술로 인식하고 있습니다. 많은 인터넷 기업들이 클라우드로 동작하는 AI 엔진을 개발하고 있지만 군수 분야, 기간 산업 분야에선 클라우드가 아닌 Embedded에서 AI를 동작시킬 것이 확실합니다. 인프라 시장에선 극단적으로 빠른 응답 시간이 필요하거나 인터넷과 단절된 상황이 많고, 더군다나 아주 작은 기기에 최적화 해서 AI를 탑재해야 하는 경우도 있습니다. 글로벌 기업들이 인터넷의 AI에 집중하는 사이에 Embedded AI 시장이 잠간동안 비어있기 때문에 빠르게 Embedded AI 기술에 접근하면 시장에서 경쟁력을 갖출 수 있으리라 생각합니다.
또한 대한민국에선 AI 원천기술을 개발하기 보다는 AI를 적용하는 쪽에 집중하고 있습니다. 이렇게 되면 AI 수입국이 될 뿐이지 AI를 수출하는 국가는 될 수 없습니다. 비록 Embedded 시장의 AI라는 작은 부분이지만 적어도 AI 엔진이라는 원천 기술에 투자를 해야 한다고 생각합니다.

Packetvisor
Packetvisor는 Octeon이라는 Network Processor(NPU)에 종속적이었던 ETRI의 Packetvisor Virtual Machine Monitor 기술과, 패킷 처리 Kernel에 종속적이었던 구름네트웍스의 PacketNgin RTOS, 그리고 Intel의 DPDK에 종속적이었던 구름네트웍스의 PacketNgin NOS 뒤를 잇는 기술입니다. 패킷 처리 framework은 지난 10여년에 걸쳐 특정 H/W에 종속적인 기술에서 Linux Kernel로 병합되는 범용 기술로 진화해 왔습니다. 정확하게는 Linux의 XDP가 기존의 H/W 종속적인 기술들을 서서히 통합해 왔다고 볼 수 있습니다. 따라서 앞으로는 패킷 처리 프레임워크는 Linux kernel을 사용하는 순수 S/W 기술로 발전하는 것이 추세라 볼 수 있습니다.
Packetvisor는 10여년 전 ETRI에서 연구했던 기술의 이름을 따서 만든 프로젝트로, 한국철도기술연구원에서 NFV 개발을 위해 저에게 기술적인 솔루션을 요구했을 때 마땅한 대안이 없어서 시작한 프로젝트입니다. 철도기술연구원의 요구사항은 특정 H/W에 종속되지 않은 Custom load balancer였는데, 현존하는 대부분의 기술이 특정 H/W에 종속적이었고, Linux의 XDP 조차도 5.0 Kernel에 가서야 User Space 패킷 처리 기능을 지원하기 시작했습니다. (4.8에선 Kernel module 형태의 패킷 처리 기능만 지원했습니다). Linux Kernel 5.0이 대중화되기 시작하는 현 시점에 XDP 기반의 패킷 처리 프레임워크는 시장 경쟁력이 있다고 생각합니다.
 

프로젝트 목표

Embedded 기기에서 실행되는 AI 엔진

포터블한 Raw packet processing framework

 

 

전문개발자 프로젝트 - 번호, 제목, 분야, 조회수, 작성
번호 제목 분야 조회수 작성
183 [2020년 파트-이건희 개발자] SCOUTER 클라우드 1532 2020-07-28
182 [2020년 파트-김현준개발자] chromium 기타 1075 2020-07-28
181 [2020년 파트-변정훈개발자] mocha 기타 1015 2020-07-28
180 [2020년 파트-진겸개발자] Storybook.js 정보시스템 1205 2020-07-28
179 [2020년 파트-조승훈개발자] Tensorflow Edge Computing 인공지능(AI) 1090 2020-07-28
178 [2020년 파트-강민구개발자] dss 기타 945 2020-07-28
177 [2020년 파트-김성민개발자] CONNX, Packetvisor 인공지능(AI) 1765 2020-07-28
176 [2020년 파트-김홍규개발자] uftrace 기타 1052 2020-07-28
175 [2020년 파트-장기효개발자] Vue.js 정보시스템 1308 2020-07-28
174 [2020년 파트-김태형 개발자] 3D for Flutter 기타 2170 2020-07-28
맨 위로
맨 위로