mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05:00 
			
		
		
		
	* feat(ml): introduce support of onnxruntime-rocm for AMD GPU
* try mutex for algo cache
use OrtMutex
* bump versions, run on mich
use 3.12
use 1.19.2
* acquire lock before any changes can be made
guard algo benchmark results
mark mutex as mutable
re-add /bin/sh (?)
use 3.10
use 6.1.2
* use composite cache key
1.19.2
fix variable name
fix variable reference
aaaaaaaaaaaaaaaaaaaa
* bump deps
* disable algo caching
* fix gha
* try ubuntu runner
* actually fix the gha
* update patch
* skip mimalloc preload for rocm
* increase build threads
* increase timeout for rocm
* Revert "increase timeout for rocm"
This reverts commit 2c4452f5d132198ed381a7b262b4a5cab5114b5f.
* attempt migraphx
* set migraphx_home
* Revert "set migraphx_home"
This reverts commit c121d3e48754b3bce100636f8d666deec58a44b7.
* Revert "attempt migraphx"
This reverts commit 521f9fb72dbe506dc6cb8faeb6494817d87265c6.
* migraphx, take two
* bump rocm
* allow cpu
* try only targeting migraphx
* skip tests
* migraph ❌
* known issues
* target gfx900 and gfx1102
* mention `HSA_USE_SVM`
* update lock
* set device id for rocm
---------
Co-authored-by: Mehdi GHESH <mehdi.ghesh@hotmail.fr>
		
	
			
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from app.config import clean_name
 | 
						|
from app.schemas import ModelSource
 | 
						|
 | 
						|
_OPENCLIP_MODELS = {
 | 
						|
    "RN101__openai",
 | 
						|
    "RN101__yfcc15m",
 | 
						|
    "RN50__cc12m",
 | 
						|
    "RN50__openai",
 | 
						|
    "RN50__yfcc15m",
 | 
						|
    "RN50x16__openai",
 | 
						|
    "RN50x4__openai",
 | 
						|
    "RN50x64__openai",
 | 
						|
    "ViT-B-16-SigLIP-256__webli",
 | 
						|
    "ViT-B-16-SigLIP-384__webli",
 | 
						|
    "ViT-B-16-SigLIP-512__webli",
 | 
						|
    "ViT-B-16-SigLIP-i18n-256__webli",
 | 
						|
    "ViT-B-16-SigLIP__webli",
 | 
						|
    "ViT-B-16-plus-240__laion400m_e31",
 | 
						|
    "ViT-B-16-plus-240__laion400m_e32",
 | 
						|
    "ViT-B-16__laion400m_e31",
 | 
						|
    "ViT-B-16__laion400m_e32",
 | 
						|
    "ViT-B-16__openai",
 | 
						|
    "ViT-B-32__laion2b-s34b-b79k",
 | 
						|
    "ViT-B-32__laion2b_e16",
 | 
						|
    "ViT-B-32__laion400m_e31",
 | 
						|
    "ViT-B-32__laion400m_e32",
 | 
						|
    "ViT-B-32__openai",
 | 
						|
    "ViT-H-14-378-quickgelu__dfn5b",
 | 
						|
    "ViT-H-14-quickgelu__dfn5b",
 | 
						|
    "ViT-H-14__laion2b-s32b-b79k",
 | 
						|
    "ViT-L-14-336__openai",
 | 
						|
    "ViT-L-14-quickgelu__dfn2b",
 | 
						|
    "ViT-L-14__laion2b-s32b-b82k",
 | 
						|
    "ViT-L-14__laion400m_e31",
 | 
						|
    "ViT-L-14__laion400m_e32",
 | 
						|
    "ViT-L-14__openai",
 | 
						|
    "ViT-L-16-SigLIP-256__webli",
 | 
						|
    "ViT-L-16-SigLIP-384__webli",
 | 
						|
    "ViT-SO400M-14-SigLIP-384__webli",
 | 
						|
    "ViT-g-14__laion2b-s12b-b42k",
 | 
						|
    "XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k",
 | 
						|
    "XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k",
 | 
						|
    "nllb-clip-base-siglip__mrl",
 | 
						|
    "nllb-clip-base-siglip__v1",
 | 
						|
    "nllb-clip-large-siglip__mrl",
 | 
						|
    "nllb-clip-large-siglip__v1",
 | 
						|
    "ViT-B-16-SigLIP2__webli",
 | 
						|
    "ViT-B-32-SigLIP2-256__webli",
 | 
						|
    "ViT-L-16-SigLIP2-256__webli",
 | 
						|
    "ViT-L-16-SigLIP2-384__webli",
 | 
						|
    "ViT-L-16-SigLIP2-512__webli",
 | 
						|
    "ViT-SO400M-14-SigLIP2-378__webli",
 | 
						|
    "ViT-SO400M-14-SigLIP2__webli",
 | 
						|
    "ViT-SO400M-16-SigLIP2-256__webli",
 | 
						|
    "ViT-SO400M-16-SigLIP2-384__webli",
 | 
						|
    "ViT-SO400M-16-SigLIP2-512__webli",
 | 
						|
    "ViT-gopt-16-SigLIP2-256__webli",
 | 
						|
    "ViT-gopt-16-SigLIP2-384__webli",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
_MCLIP_MODELS = {
 | 
						|
    "LABSE-Vit-L-14",
 | 
						|
    "XLM-Roberta-Large-Vit-B-16Plus",
 | 
						|
    "XLM-Roberta-Large-Vit-B-32",
 | 
						|
    "XLM-Roberta-Large-Vit-L-14",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
_INSIGHTFACE_MODELS = {
 | 
						|
    "antelopev2",
 | 
						|
    "buffalo_s",
 | 
						|
    "buffalo_m",
 | 
						|
    "buffalo_l",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
SUPPORTED_PROVIDERS = [
 | 
						|
    "CUDAExecutionProvider",
 | 
						|
    "ROCMExecutionProvider",
 | 
						|
    "OpenVINOExecutionProvider",
 | 
						|
    "CPUExecutionProvider",
 | 
						|
]
 | 
						|
 | 
						|
RKNN_SUPPORTED_SOCS = ["rk3566", "rk3568", "rk3576", "rk3588"]
 | 
						|
RKNN_COREMASK_SUPPORTED_SOCS = ["rk3576", "rk3588"]
 | 
						|
 | 
						|
 | 
						|
def get_model_source(model_name: str) -> ModelSource | None:
 | 
						|
    cleaned_name = clean_name(model_name)
 | 
						|
 | 
						|
    if cleaned_name in _INSIGHTFACE_MODELS:
 | 
						|
        return ModelSource.INSIGHTFACE
 | 
						|
 | 
						|
    if cleaned_name in _MCLIP_MODELS:
 | 
						|
        return ModelSource.MCLIP
 | 
						|
 | 
						|
    if cleaned_name in _OPENCLIP_MODELS:
 | 
						|
        return ModelSource.OPENCLIP
 | 
						|
 | 
						|
    return None
 |