mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-08-14 13:36:40 +08:00
Enable the --cuda-device parameter to support both CUDA and Ascend NPUs simultaneously.
This commit is contained in:
parent
6fb85e16c8
commit
c791d33ad4
@ -50,7 +50,6 @@ parser.add_argument("--input-directory", type=str, default=None, help="Set the C
|
|||||||
parser.add_argument("--auto-launch", action="store_true", help="Automatically launch ComfyUI in the default browser.")
|
parser.add_argument("--auto-launch", action="store_true", help="Automatically launch ComfyUI in the default browser.")
|
||||||
parser.add_argument("--disable-auto-launch", action="store_true", help="Disable auto launching the browser.")
|
parser.add_argument("--disable-auto-launch", action="store_true", help="Disable auto launching the browser.")
|
||||||
parser.add_argument("--cuda-device", type=int, default=None, metavar="DEVICE_ID", help="Set the id of the cuda device this instance will use. All other devices will not be visible.")
|
parser.add_argument("--cuda-device", type=int, default=None, metavar="DEVICE_ID", help="Set the id of the cuda device this instance will use. All other devices will not be visible.")
|
||||||
parser.add_argument("--ascend-device", type=int, default=None, metavar="ASCEND_DEVICE_ID", help="Set the id of the ascend device this instance will use. All other devices will not be visible.")
|
|
||||||
parser.add_argument("--default-device", type=int, default=None, metavar="DEFAULT_DEVICE_ID", help="Set the id of the default device, all other devices will stay visible.")
|
parser.add_argument("--default-device", type=int, default=None, metavar="DEFAULT_DEVICE_ID", help="Set the id of the default device, all other devices will stay visible.")
|
||||||
cm_group = parser.add_mutually_exclusive_group()
|
cm_group = parser.add_mutually_exclusive_group()
|
||||||
cm_group.add_argument("--cuda-malloc", action="store_true", help="Enable cudaMallocAsync (enabled by default for torch 2.0 and up).")
|
cm_group.add_argument("--cuda-malloc", action="store_true", help="Enable cudaMallocAsync (enabled by default for torch 2.0 and up).")
|
||||||
|
|||||||
24
main.py
24
main.py
@ -103,18 +103,23 @@ def execute_prestartup_script():
|
|||||||
apply_custom_paths()
|
apply_custom_paths()
|
||||||
execute_prestartup_script()
|
execute_prestartup_script()
|
||||||
|
|
||||||
|
if 'torch' in sys.modules:
|
||||||
|
logging.warning("WARNING: Potential Error in code: Torch already imported, torch should never be imported before this point.")
|
||||||
|
|
||||||
# Main code
|
# Main code
|
||||||
import asyncio
|
import asyncio
|
||||||
import shutil
|
import shutil
|
||||||
import threading
|
import threading
|
||||||
import gc
|
import gc
|
||||||
|
import comfy.model_management
|
||||||
|
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
os.environ['MIMALLOC_PURGE_DELAY'] = '0'
|
os.environ['MIMALLOC_PURGE_DELAY'] = '0'
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
device = comfy.model_management.get_torch_device()
|
||||||
|
device_name = comfy.model_management.get_torch_device_name(device)
|
||||||
|
|
||||||
if args.default_device is not None:
|
if args.default_device is not None:
|
||||||
default_dev = args.default_device
|
default_dev = args.default_device
|
||||||
devices = list(range(32))
|
devices = list(range(32))
|
||||||
@ -125,12 +130,13 @@ if __name__ == "__main__":
|
|||||||
os.environ['HIP_VISIBLE_DEVICES'] = str(devices)
|
os.environ['HIP_VISIBLE_DEVICES'] = str(devices)
|
||||||
|
|
||||||
if args.cuda_device is not None:
|
if args.cuda_device is not None:
|
||||||
os.environ['CUDA_VISIBLE_DEVICES'] = str(args.cuda_device)
|
if device_name != 'npu':
|
||||||
os.environ['HIP_VISIBLE_DEVICES'] = str(args.cuda_device)
|
os.environ['CUDA_VISIBLE_DEVICES'] = str(args.cuda_device)
|
||||||
logging.info("Set cuda device to: {}".format(args.cuda_device))
|
os.environ['HIP_VISIBLE_DEVICES'] = str(args.cuda_device)
|
||||||
elif args.ascend_device is not None:
|
logging.info("Set cuda device to: {}".format(args.cuda_device))
|
||||||
os.environ["ASCEND_RT_VISIBLE_DEVICES"] = str(args.ascend_device)
|
else:
|
||||||
logging.info("Set npu device to: {}".format(args.ascend_device))
|
os.environ["ASCEND_RT_VISIBLE_DEVICES"] = str(args.cuda_device)
|
||||||
|
logging.info("Set npu device to: {}".format(args.cuda_device))
|
||||||
|
|
||||||
if args.oneapi_device_selector is not None:
|
if args.oneapi_device_selector is not None:
|
||||||
os.environ['ONEAPI_DEVICE_SELECTOR'] = args.oneapi_device_selector
|
os.environ['ONEAPI_DEVICE_SELECTOR'] = args.oneapi_device_selector
|
||||||
@ -142,8 +148,7 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
import cuda_malloc
|
import cuda_malloc
|
||||||
|
|
||||||
if 'torch' in sys.modules:
|
|
||||||
logging.warning("WARNING: Potential Error in code: Torch already imported, torch should never be imported before this point.")
|
|
||||||
|
|
||||||
import comfy.utils
|
import comfy.utils
|
||||||
|
|
||||||
@ -151,7 +156,6 @@ import execution
|
|||||||
import server
|
import server
|
||||||
from protocol import BinaryEventTypes
|
from protocol import BinaryEventTypes
|
||||||
import nodes
|
import nodes
|
||||||
import comfy.model_management
|
|
||||||
import comfyui_version
|
import comfyui_version
|
||||||
import app.logger
|
import app.logger
|
||||||
import hook_breaker_ac10a0
|
import hook_breaker_ac10a0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user