Get basic detection working

This commit is contained in:
Nicolas Mowen 2025-09-27 06:39:42 -06:00
parent c8eb2b00ea
commit f5b207904c
5 changed files with 42 additions and 7 deletions

View File

@ -22,7 +22,7 @@ RUN apt update -qq && \
RUN mkdir -p /opt/rocm-dist/opt/rocm-$ROCM/lib
RUN cd /opt/rocm-$ROCM/lib && \
cp -dpr libMIOpen*.so* libamd*.so* libhip*.so* libhsa*.so* libmigraphx*.so* librocm*.so* librocblas*.so* libroctracer*.so* librocsolver*.so* librocfft*.so* librocprofiler*.so* libroctx*.so* /opt/rocm-dist/opt/rocm-$ROCM/lib/ && \
cp -dpr libMIOpen*.so* libamd*.so* libhip*.so* libhsa*.so* libmigraphx*.so* librocm*.so* librocblas*.so* libroctracer*.so* librocsolver*.so* librocfft*.so* librocprofiler*.so* libroctx*.so* librocroller.so* /opt/rocm-dist/opt/rocm-$ROCM/lib/ && \
mkdir -p /opt/rocm-dist/opt/rocm-$ROCM/lib/migraphx/lib && \
cp -dpr migraphx/lib/* /opt/rocm-dist/opt/rocm-$ROCM/lib/migraphx/lib
RUN cd /opt/rocm-dist/opt/ && ln -s rocm-$ROCM rocm
@ -64,6 +64,10 @@ COPY --from=rocm /opt/rocm-dist/ /
#######################################################################
FROM deps-prelim AS rocm-prelim-hsa-override0
ENV MIGRAPHX_DISABLE_MIOPEN_FUSION=1
ENV MIGRAPHX_DISABLE_SCHEDULE_PASS=1
ENV MIGRAPHX_DISABLE_REDUCE_FUSION=1
ENV MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS=1
COPY --from=rocm-dist / /

View File

@ -1 +1 @@
onnxruntime-rocm @ https://github.com/NickM-27/frigate-onnxruntime-rocm/releases/download/v7.0.1/onnxruntime_migraphx-1.23.0-cp311-cp311-linux_x86_64.whl
onnxruntime-migraphx @ https://github.com/NickM-27/frigate-onnxruntime-rocm/releases/download/v7.0.1/onnxruntime_migraphx-1.23.0-cp311-cp311-linux_x86_64.whl

View File

@ -2,7 +2,7 @@ variable "AMDGPU" {
default = "gfx900"
}
variable "ROCM" {
default = "6.4.1"
default = "7.0.0"
}
variable "HSA_OVERRIDE_GFX_VERSION" {
default = ""

View File

@ -415,7 +415,9 @@ def get_optimized_runner(
if rknn_path:
return RKNNModelRunner(rknn_path)
providers, options = get_ort_providers(device == "CPU", device, **kwargs)
providers, options = get_ort_providers(
device == "CPU", device, model_path=model_path, **kwargs
)
if providers[0] == "CPUExecutionProvider":
# In the default image, ONNXRuntime is used so we will only get CPUExecutionProvider

View File

@ -284,7 +284,10 @@ def post_process_yolox(
def get_ort_providers(
force_cpu: bool = False, device: str | None = "AUTO", requires_fp16: bool = False
force_cpu: bool = False,
device: str | None = "AUTO",
requires_fp16: bool = False,
model_path: str | None = None,
) -> tuple[list[str], list[dict[str, Any]]]:
if force_cpu:
return (
@ -351,8 +354,34 @@ def get_ort_providers(
}
)
elif provider == "MIGraphXExecutionProvider":
providers.append(provider)
options.append({})
# Create MIGraphX cache directory
migraphx_cache_dir = os.path.join(MODEL_CACHE_DIR, "migraphx")
os.makedirs(migraphx_cache_dir, exist_ok=True)
if model_path:
model_filename = os.path.basename(model_path)
model_name = os.path.splitext(model_filename)[0] # Remove extension
compiled_model_path = os.path.join(
migraphx_cache_dir, f"{model_name}.mxr"
)
if os.path.exists(compiled_model_path):
providers.append(provider)
options.append(
{
"migraphx_fp16_enable": 0,
}
)
else:
providers.append(provider)
options.append(
{
"migraphx_fp16_enable": 0,
}
)
else:
providers.append(provider)
options.append({})
elif provider == "CPUExecutionProvider":
providers.append(provider)
options.append(