yalue/onnxruntime_go
A Go (golang) library wrapping microsoft/onnxruntime.
해결하는 문제
이 라이브러리는 ONNX 형식의 신경망을 로드하고 실행하기 위한 간단한 Go (Golang) 인터페이스를 제공합니다. 특히 크로스 플랫폼 호환성 문제를 해결하여 Windows, Linux, macOS의 Go에서 ONNX Runtime의 C/C++ API를 사용할 수 있도록 하며, Windows에서 CGo와 MSVC 간의 일반적인 컴파일러 충돌 문제를 극복합니다.
작동 원리
onnxruntime 소스 코드에 의존하는 대신, 이 라이브러리는 실행 시점에 onnxruntime 공유 라이브러리(DLL 또는.so)를 수동으로 로드합니다. 이를 통해 특정 컴파일러에 대한 의존성을 제거하고 Go 제네릭을 사용하여 다양한 Tensor 데이터 타입을 지원할 수 있습니다. CUDA, TensorRT, CoreML를 포함한 하드웨어 가속을 위한 다양한 실행 제공업체를 지원합니다.
대상 사용자
C++ 코드를 작성하거나 복잡한 크로스 플랫폼 빌드 설정을 다룰 필요 없이, 사전 학습된 ONNX 신경망을 애플리케이션에 통합하려는 Go 개발자.
주요 특징
- 크로스 플랫폼 지원: Windows, Linux, macOS에서 작동합니다.
- 하드웨어 가속: CUDA, TensorRT, CoreML 실행 제공업체 지원이 확인되었습니다.
- 제네릭 텐서: Go 제네릭을 사용하여 여러 Tensor 데이터 타입을 효율적으로 처리합니다.
- 유연한 세션 관리: 입출력 텐서를 정밀하게 제어하는
AdvancedSession과 실행 중 유연한 텐서 사양을 위한DynamicAdvancedSession을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트