API 개요¶
RBLN SDK의 설계 철학은 RBLN NPU를 활용한 서빙환경 구축에 들어가는 사용자의 노력을 최소화 함으로써 사용자가 온전히 자신의 서비스 목적에 맞는 딥러닝 모델 개발에 집중할 수 있도록 하는 것입니다. 이를 위해 RBLN 컴파일러 및 RBLN 런타임의 사용자 API를 최대한 간결하고 직관적으로 설계하고 있습니다.
RBLN SDK의 사용자 API는 가장 많이 사용되는 딥러닝 프레임워크인 텐서플로우와 파이토치를 지원합니다. 기존 코드의 런타임 부분만 RBLN SDK에서 제공하는 사용자 API로 수정하면, 사전학습 된 파이토치, 텐서플로우 모델을 RBLN NPU에서 쉽게 구동할 수 있습니다. RBLN SDK의 사용자 API 구조는 아래 그림과 같습니다.
RBLN 컴파일러는 텐서플로우 및 파이토치 그래프를 입력으로 받아 바로 컴파일 할 수 있습니다. 구체적으로, 텐서플로우 v2의 tf.function
, 텐서플로우 v1의 GraphDef
, 파이토치의 TorchScript
혹은 torch.nn.Module
을 입력으로 받아 컴파일을 수행합니다.
컴파일 결과물은 Runtime Graph, Parameter, Compiled Data 이며, 이 결과물을 디스크에 저장하고 이 후 추론 과정에서 사용할 수 있습니다.
컴파일 결과물은 RBLN 런타임 모듈 Runtime()
생성시 사용되며, 생성된 런타임 모듈의 run()
함수를 통해 RBLN NPU에서 추론할 수 있습니다.