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가 유일합니다.
[개요]
- Google의 차세대 모바일 앱 프로젝트 개발 플랫폼인 Flutter에 탑재 가능한 3D graphics 모듈을 개발하는 프로젝트
- Flutter는 현재 2D UI/레이아웃에 집중되어 있어 3D 그래픽 처리에 대한 개발이 필요한 상태
[필요성]
- Flutter는 iOS, Android 환경에서 native로 개발된 것처럼 탁월한 성능을 보여 매우 주목 받고 있음
- 그러나 기존 그래픽스 라이브러리와 호환되지 않아 이에 대한 요구가 나날이 높아지는 상황
- 그래픽스 라이브러리는 모바일 앱을 비롯하여 웹 기반 어플리케이션, Unity에서 폭넓게 활용됨
연도 : 2020년 ㅣ 기수: 2020 ㅣ 성명
: 김태형 | 프로젝트명 : 3D for Flutter