Skip to content

Commit

Permalink
整理: ランタイム DLL ロードのコメント付け (#1132)
Browse files Browse the repository at this point in the history
* refactor: ランタイム DLL ロードのコメント付け

* add: ランタイムロードコメント詳細化

* fix: 用語「ランタイム」を廃止

* fix: コード動作から変数意図へコメントを変更
  • Loading branch information
tarepan authored Mar 29, 2024
1 parent 473dd9a commit cb9ab44
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions voicevox_engine/core/core_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ class CoreError(Exception):


def load_runtime_lib(runtime_dirs: list[Path]) -> None:
"""
コアの実行に必要な依存 DLL をロードする。検索対象ディレクトリは引数 `runtime_dirs` およびシステム検索対象ディレクトリ。
Args:
runtime_dirs - 直下に DLL が存在するディレクトリの一覧
"""
# `lib_file_names`は「ENGINE が利用可能な DLL のファイル名一覧」である
# `lib_names` は「ENGINE が利用可能な DLL のライブラリ名一覧」である(ライブラリ名は `libtorch.so.1.0` の `torch` 部分)
if platform.system() == "Windows":
# DirectML.dllはonnxruntimeと互換性のないWindows標準搭載のものを優先して読み込むことがあるため、明示的に読み込む
# 参考 1. https://github.com/microsoft/onnxruntime/issues/3360
Expand All @@ -40,12 +48,16 @@ def load_runtime_lib(runtime_dirs: list[Path]) -> None:
lib_names = ["onnxruntime"]
else:
raise RuntimeError("不明なOSです")
for lib_path in runtime_dirs:
for file_name in lib_file_names:

# 引数指定ディレクトリ直下の DLL をロードする
for runtime_dir in runtime_dirs:
for lib_file_name in lib_file_names:
try:
CDLL(str((lib_path / file_name).resolve(strict=True)))
CDLL(str((runtime_dir / lib_file_name).resolve(strict=True)))
except OSError:
pass

# システム検索ディレクトリ直下の DLL をロードする
for lib_name in lib_names:
try:
CDLL(find_library(lib_name))
Expand Down

0 comments on commit cb9ab44

Please sign in to comment.