사냥꾼의 IT 노트

Python 병렬 라이브러리 개발 프로젝트 - 개요 본문

python

Python 병렬 라이브러리 개발 프로젝트 - 개요

가면 쓴 사냥꾼 2023. 1. 5. 21:38

※본 포스팅은 22년 9월~22년 11월에 진행된 프로젝트의 연구노트입니다.

 

CONNX Engine (인공지능 모델 추론 엔진)은 현재 C언어 라이브러리로 작성되어 있어 python 기반 모듈로의 변환 연구의 필요성이 제기되었다. 인공지능 분야에서 python은 C언어에 비해 상대적으로 범용성과 접근성이 높기 때문이다.

 

CONNX Engine의 so 라이브러리는 python과 연동되어 인공지능 추론 엔진의 기능이 제대로 작동되어야 한다. python과 연동되는 과정에서 python에서 기본적으로 제공하는 모듈인 ctypes를 사용한다. ctypes는 C언어로 작성된 모듈 및 함수 등을 python에서도 이용 가능하게 해주는 모듈이다.

 

https://docs.python.org/ko/3/library/ctypes.html

 

ctypes — A foreign function library for Python

Source code: Lib/ctypes ctypes is a foreign function library for Python. It provides C compatible data types, and allows calling functions in DLLs or shared libraries. It can be used to wrap these ...

docs.python.org

 

이후 유지보수 작업에서 python-connx 패키지 구현 및 배포가 이루어지고, 기능별로 제대로 동작되는지에 대한 검증 테스트가 필요하다. 만약 문제가 발생할 경우 디버깅을 통한 소스 코드의 수정 및 보완이 이루어져야 한다.

 

본 프로젝트의 목표는 다음과 같다.

  • C언어로 작성된 so 라이브러리를 python 환경에서도 사용할 수 있도록 C언어를 python 코드로 변환
  • connx engine shared library와 python을 연동
  • python-connx 패키지의 구현 및 배포
  • 모듈별 동작 테스트 검증 및 디버깅 작업