Add: test code for CoreMLExecutionProvider on a trial basis
Currently ONNXRuntime's CoreML support is not very good, and on my environment, I get errors like “coreml_execution_provider.cc:192 operator() Input (/sdp/flows.3/GatherND_2_output_0) has a dynamic shape ({-1,-1}) but the runtime shape ({0,10}) has zero elements. This is not supported by the CoreML EP.” and inference fails.
I hope this will be fixed in a future version of ONNXRuntime, and leave the test code as it is.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,6 +5,8 @@ dist/
|
||||
.coverage*
|
||||
.ipynb_checkpoints/
|
||||
.ruff_cache/
|
||||
.DS_Store
|
||||
._*
|
||||
|
||||
/*.yml
|
||||
!/default_config.yml
|
||||
|
||||
@@ -109,6 +109,8 @@ test = "pytest -s tests/test_main.py::test_synthesize_onnx_cpu"
|
||||
test-cuda = "pytest -s tests/test_main.py::test_synthesize_onnx_cuda"
|
||||
# Usage: `hatch run test-onnx:test-directml`
|
||||
test-directml = "pytest -s tests/test_main.py::test_synthesize_onnx_directml"
|
||||
# Usage: `hatch run test-onnx:test-coreml`
|
||||
test-coreml = "pytest -s tests/test_main.py::test_synthesize_onnx_coreml"
|
||||
# Usage: `hatch run test-onnx:coverage`
|
||||
test-cov = "coverage run -m pytest -s tests/test_main.py::test_synthesize_onnx_cpu"
|
||||
# Usage: `hatch run test-onnx:cov-report`
|
||||
|
||||
@@ -5,10 +5,12 @@ def torch_device_to_onnx_providers(
|
||||
device: str,
|
||||
) -> Sequence[Union[str, tuple[str, dict[str, Any]]]]:
|
||||
if device.startswith("cuda"):
|
||||
# cudnn_conv_algo_search を DEFAULT にすると推論速度が大幅に向上する
|
||||
# ref: https://medium.com/neuml/debug-onnx-gpu-performance-c9290fe07459
|
||||
return [
|
||||
# cudnn_conv_algo_search を DEFAULT にすると推論速度が大幅に向上する
|
||||
# ref: https://medium.com/neuml/debug-onnx-gpu-performance-c9290fe07459
|
||||
("CUDAExecutionProvider", {"cudnn_conv_algo_search": "DEFAULT"}),
|
||||
# CUDA が利用できない場合、可能であれば DirectML を利用する
|
||||
("DmlExecutionProvider", {"device_id": 0}),
|
||||
("CPUExecutionProvider", {}),
|
||||
]
|
||||
else:
|
||||
|
||||
@@ -125,3 +125,12 @@ def test_synthesize_onnx_directml():
|
||||
("DmlExecutionProvider", {"device_id": 0}),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def test_synthesize_onnx_coreml():
|
||||
synthesize(
|
||||
inference_type="onnx",
|
||||
onnx_providers=[
|
||||
("CoreMLExecutionProvider", {}),
|
||||
],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user