improve: directml device id
This commit is contained in:
parent
87a10c8e11
commit
257d99e355
2
client/demo/dist/index.js
vendored
2
client/demo/dist/index.js
vendored
File diff suppressed because one or more lines are too long
@ -33,6 +33,12 @@ export const ConvertArea = (props: ConvertProps) => {
|
|||||||
const onClassName = serverSetting.serverSetting.gpu == 0 ? "config-sub-area-button-active" : "config-sub-area-button";
|
const onClassName = serverSetting.serverSetting.gpu == 0 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
const offClassName = serverSetting.serverSetting.gpu == 0 ? "config-sub-area-button" : "config-sub-area-button-active";
|
const offClassName = serverSetting.serverSetting.gpu == 0 ? "config-sub-area-button" : "config-sub-area-button-active";
|
||||||
|
|
||||||
|
const cpuClassName = serverSetting.serverSetting.gpu == -1 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
|
const gpu0ClassName = serverSetting.serverSetting.gpu == 0 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
|
const gpu1ClassName = serverSetting.serverSetting.gpu == 1 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
|
const gpu2ClassName = serverSetting.serverSetting.gpu == 2 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
|
const gpu3ClassName = serverSetting.serverSetting.gpu == 3 ? "config-sub-area-button-active" : "config-sub-area-button";
|
||||||
|
|
||||||
const gpuSelect =
|
const gpuSelect =
|
||||||
edition.indexOf("onnxdirectML-cuda") >= 0 ? (
|
edition.indexOf("onnxdirectML-cuda") >= 0 ? (
|
||||||
<div className="config-sub-area-control">
|
<div className="config-sub-area-control">
|
||||||
@ -43,23 +49,56 @@ export const ConvertArea = (props: ConvertProps) => {
|
|||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
await serverSetting.updateServerSettings({
|
await serverSetting.updateServerSettings({
|
||||||
...serverSetting.serverSetting,
|
...serverSetting.serverSetting,
|
||||||
gpu: 0,
|
gpu: -1,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
className={onClassName}
|
className={cpuClassName}
|
||||||
>
|
>
|
||||||
on
|
cpu
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
await serverSetting.updateServerSettings({
|
await serverSetting.updateServerSettings({
|
||||||
...serverSetting.serverSetting,
|
...serverSetting.serverSetting,
|
||||||
gpu: -1,
|
gpu: 0,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
className={offClassName}
|
className={gpu0ClassName}
|
||||||
>
|
>
|
||||||
off
|
0
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
onClick={async () => {
|
||||||
|
await serverSetting.updateServerSettings({
|
||||||
|
...serverSetting.serverSetting,
|
||||||
|
gpu: 1,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
className={gpu1ClassName}
|
||||||
|
>
|
||||||
|
1
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
onClick={async () => {
|
||||||
|
await serverSetting.updateServerSettings({
|
||||||
|
...serverSetting.serverSetting,
|
||||||
|
gpu: 2,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
className={gpu2ClassName}
|
||||||
|
>
|
||||||
|
2
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
onClick={async () => {
|
||||||
|
await serverSetting.updateServerSettings({
|
||||||
|
...serverSetting.serverSetting,
|
||||||
|
gpu: 3,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
className={gpu3ClassName}
|
||||||
|
>
|
||||||
|
3
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -11,7 +11,7 @@ class ModelSlotManager:
|
|||||||
def __init__(self, model_dir: str):
|
def __init__(self, model_dir: str):
|
||||||
self.model_dir = model_dir
|
self.model_dir = model_dir
|
||||||
self.modelSlots = loadAllSlotInfo(self.model_dir)
|
self.modelSlots = loadAllSlotInfo(self.model_dir)
|
||||||
print("MODEL SLOT INFO-------------->>>>>", self.modelSlots)
|
print("[MODEL SLOT INFO]", self.modelSlots)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_instance(cls, model_dir: str):
|
def get_instance(cls, model_dir: str):
|
||||||
|
@ -25,16 +25,30 @@ class DeviceManager(object):
|
|||||||
elif self.mps_enabled:
|
elif self.mps_enabled:
|
||||||
dev = torch.device("mps")
|
dev = torch.device("mps")
|
||||||
else:
|
else:
|
||||||
dev = torch.device("cuda", index=id)
|
if id < self.gpu_num:
|
||||||
|
dev = torch.device("cuda", index=id)
|
||||||
|
else:
|
||||||
|
print("[Voice Changer] device detection error, fallback to cpu")
|
||||||
|
dev = torch.device("cpu")
|
||||||
return dev
|
return dev
|
||||||
|
|
||||||
def getOnnxExecutionProvider(self, gpu: int):
|
def getOnnxExecutionProvider(self, gpu: int):
|
||||||
availableProviders = onnxruntime.get_available_providers()
|
availableProviders = onnxruntime.get_available_providers()
|
||||||
devNum = torch.cuda.device_count()
|
devNum = torch.cuda.device_count()
|
||||||
if gpu >= 0 and "CUDAExecutionProvider" in availableProviders and devNum > 0:
|
if gpu >= 0 and "CUDAExecutionProvider" in availableProviders and devNum > 0:
|
||||||
return ["CUDAExecutionProvider"], [{"device_id": gpu}]
|
if gpu < devNum: # ひとつ前のif文で弾いてもよいが、エラーの解像度を上げるため一段下げ。
|
||||||
|
return ["CUDAExecutionProvider"], [{"device_id": gpu}]
|
||||||
|
else:
|
||||||
|
print("[Voice Changer] device detection error, fallback to cpu")
|
||||||
|
return ["CPUExecutionProvider"], [
|
||||||
|
{
|
||||||
|
"intra_op_num_threads": 8,
|
||||||
|
"execution_mode": onnxruntime.ExecutionMode.ORT_PARALLEL,
|
||||||
|
"inter_op_num_threads": 8,
|
||||||
|
}
|
||||||
|
]
|
||||||
elif gpu >= 0 and "DmlExecutionProvider" in availableProviders:
|
elif gpu >= 0 and "DmlExecutionProvider" in availableProviders:
|
||||||
return ["DmlExecutionProvider"], [{}]
|
return ["DmlExecutionProvider"], [{"device_id": gpu}]
|
||||||
else:
|
else:
|
||||||
return ["CPUExecutionProvider"], [
|
return ["CPUExecutionProvider"], [
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,7 @@ def createPipeline(modelSlot: RVCModelSlot, gpu: int, f0Detector: str):
|
|||||||
dev,
|
dev,
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[Voice Changer] exception! loading embedder", e)
|
print("[Voice Changer] exception! loading embedder", e, dev)
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
# pitchExtractor
|
# pitchExtractor
|
||||||
|
Loading…
x
Reference in New Issue
Block a user