본문 바로가기

dev_AI_framework

AI 컴파일러의 구현 - graph_executor_v2 를 통해

진행 현황 요약

  1. 컴파일러 분리 구조 마련
  • dev/backend/compiler/ 추가: ir/, passes/, kernels/, runtime/ 스켈레톤 구성.
  • IR → Pass(canonicalize, fuse_elementwise) → 커널 선택(selector) → 실행(ExecutorV2) 파이프라인 연결.
  1. 네이티브 바인딩 v2 신설 & 빌드 성공
  • dev/backend/graph_executor_v2/에 bindings_min_api.cpp, launch_table.cpp, my_kernels.cu(더미).
  • CMake + scikit-build-core로 wheel 생성/설치 성공.
  • install(TARGETS …) 추가로 wheel에 .pyd 포함 확인.
  • graph_executor_v2.cp312-win_amd64.pyd 로딩 확인.
  1. DLL 로딩 문제 해결
  • Windows에서 CUDA DLL 경로 문제 → os.add_dll_directory(CUDA_PATH\bin) 사용.
  • 재사용을 위해 utils/load_cuda.ensure_cuda_dlls() 헬퍼로 공통화.
  1. ExecutorV2 보강
  • 바인딩 선택 로직: v2 우선, v1 폴백, 필요 시 GE_NATIVE 환경변수로 강제.
  • dry_run 지원, 디버그 정보 함수 추가.
  • stream=None로 들어오던 이슈 → 정수 변환(기본 0)로 수정.
  • smoke_compiler.py에서 경로/ DLL 설정 순서 정리하여 엔드투엔드 실행 완료.
  1. 스모크 테스트 통과
  • smoke_test_v2.py(v2 단독) 정상.
  • smoke_compiler.py(IR→Pass→커널선택→launch) 정상 호출까지 확인.

현재 상태 (한 줄)

  • Python 주도 컴파일러 경로가 v2 바인딩을 통해 실제 launch_kernel 호출까지 동작하는 상태. (커널 본체는 아직 더미/스텁)