[GH-ISSUE #629] 如何指定显卡运行 #465

Open
opened 2026-10-29 14:40:05 +00:00 by bsakaguchi · 6 comments
Owner

Originally created by @wzj-ll on GitHub (Feb 24, 2025).
Original GitHub issue: https://github.com/kvcache-ai/ktransformers/issues/629

我想让整个模型运行在cuda:1上,现在是在0上,我修改了所有位置为0的配置和代码之后,直接runtimeError了:
Traceback (most recent call last):
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/local_chat.py", line 187, in
fire.Fire(local_chat)
File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 135, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 468, in _Fire
component, remaining_args = _CallAndUpdateTrace(
^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 684, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/local_chat.py", line 111, in local_chat
optimize_and_load_gguf(model, optimize_rule_path, gguf_path, config)
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/optimize/optimize.py", line 129, in optimize_and_load_gguf
load_weights(module, gguf_loader)
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights
load_weights(child, gguf_loader, prefix+name+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 88, in load_weights
module.load()
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/operators/base_operator.py", line 63, in load
utils.load_weights(child, self.gguf_loader, self.key+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights
load_weights(child, gguf_loader, prefix+name+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights
load_weights(child, gguf_loader, prefix+name+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights
load_weights(child, gguf_loader, prefix+name+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 88, in load_weights
module.load()
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/operators/base_operator.py", line 63, in load
utils.load_weights(child, self.gguf_loader, self.key+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights
load_weights(child, gguf_loader, prefix+name+".")
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 84, in load_weights
load_cur_state_dict(module, gguf_loader, prefix)
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 74, in load_cur_state_dict
weights = gguf_loader.load_gguf_tensor(translated_key, device = device).to(dtype = target_dtype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/custom_gguf.py", line 332, in load_gguf_tensor
values = GGML_DEQUANTIZE_GPU[ggml_name](data, device)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/custom_gguf.py", line 755, in dequantize_f32_gpu
res_gpu = torch.empty_like(res, device=device)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: CUDA error: invalid device ordinal
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with TORCH_USE_CUDA_DSA to enable device-side assertions
各位有遇到过这个问题吗?求解答

Originally created by @wzj-ll on GitHub (Feb 24, 2025). Original GitHub issue: https://github.com/kvcache-ai/ktransformers/issues/629 我想让整个模型运行在cuda:1上,现在是在0上,我修改了所有位置为0的配置和代码之后,直接runtimeError了: Traceback (most recent call last): File "/mnt/k8s/deepseek/ktransformers/./ktransformers/local_chat.py", line 187, in <module> fire.Fire(local_chat) File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 135, in Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 468, in _Fire component, remaining_args = _CallAndUpdateTrace( ^^^^^^^^^^^^^^^^^^^^ File "/home/ubuntu/anaconda3/envs/ktransformers/lib/python3.11/site-packages/fire/core.py", line 684, in _CallAndUpdateTrace component = fn(*varargs, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/k8s/deepseek/ktransformers/./ktransformers/local_chat.py", line 111, in local_chat optimize_and_load_gguf(model, optimize_rule_path, gguf_path, config) File "/mnt/k8s/deepseek/ktransformers/./ktransformers/optimize/optimize.py", line 129, in optimize_and_load_gguf load_weights(module, gguf_loader) File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights load_weights(child, gguf_loader, prefix+name+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 88, in load_weights module.load() File "/mnt/k8s/deepseek/ktransformers/./ktransformers/operators/base_operator.py", line 63, in load utils.load_weights(child, self.gguf_loader, self.key+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights load_weights(child, gguf_loader, prefix+name+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights load_weights(child, gguf_loader, prefix+name+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights load_weights(child, gguf_loader, prefix+name+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 88, in load_weights module.load() File "/mnt/k8s/deepseek/ktransformers/./ktransformers/operators/base_operator.py", line 63, in load utils.load_weights(child, self.gguf_loader, self.key+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 86, in load_weights load_weights(child, gguf_loader, prefix+name+".") File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 84, in load_weights load_cur_state_dict(module, gguf_loader, prefix) File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/utils.py", line 74, in load_cur_state_dict weights = gguf_loader.load_gguf_tensor(translated_key, device = device).to(dtype = target_dtype) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/custom_gguf.py", line 332, in load_gguf_tensor values = GGML_DEQUANTIZE_GPU[ggml_name](data, device) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/k8s/deepseek/ktransformers/./ktransformers/util/custom_gguf.py", line 755, in dequantize_f32_gpu res_gpu = torch.empty_like(res, device=device) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1 Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions 各位有遇到过这个问题吗?求解答
Author
Owner

@Microcarft commented on GitHub (Feb 24, 2025):

不妨换个思路,我是在lxc环境下运行的,可以方便的控制GPU实例以及numa等分配规则,还可以做更多精细化的控制。可以尝试一下

<!-- gh-comment-id:2677541093 --> @Microcarft commented on GitHub (Feb 24, 2025): 不妨换个思路,我是在lxc环境下运行的,可以方便的控制GPU实例以及numa等分配规则,还可以做更多精细化的控制。可以尝试一下
Author
Owner

@moneyisallyouneed commented on GitHub (Feb 24, 2025):

直接CUDA_VISIBLE_DEVICES=1

<!-- gh-comment-id:2677559743 --> @moneyisallyouneed commented on GitHub (Feb 24, 2025): 直接CUDA_VISIBLE_DEVICES=1
Author
Owner

@yileld commented on GitHub (Feb 24, 2025):

配置文件里的cuda:1是第二张卡的意思,而程序仍然会获取所有可用的显卡,你需要在命令行里增加CUDA_VISIBLE_DEVICES=1,然后配置文件仍然是cuda:0不变

<!-- gh-comment-id:2677797635 --> @yileld commented on GitHub (Feb 24, 2025): 配置文件里的cuda:1是第二张卡的意思,而程序仍然会获取所有可用的显卡,你需要在命令行里增加CUDA_VISIBLE_DEVICES=1,然后配置文件仍然是cuda:0不变
Author
Owner

@snailfrying commented on GitHub (Feb 25, 2025):

你可以直接配置环境试试:export CUDA_VISIBLE_DEVICES=1 # 在运行前设置

<!-- gh-comment-id:2680125580 --> @snailfrying commented on GitHub (Feb 25, 2025): 你可以直接配置环境试试:export CUDA_VISIBLE_DEVICES=1 # 在运行前设置
Author
Owner

@ccp123456789 commented on GitHub (Mar 5, 2025):

直接CUDA_VISIBLE_DEVICES=1

不行,还是会启用第0张卡

<!-- gh-comment-id:2699556984 --> @ccp123456789 commented on GitHub (Mar 5, 2025): > 直接CUDA_VISIBLE_DEVICES=1 不行,还是会启用第0张卡
Author
Owner

@better-er commented on GitHub (Mar 20, 2025):

直接CUDA_VISIBLE_DEVICES=1

不行,还是会启用第0张卡

先运行export CUDA_VISIBLE_DEVICES=2,再启动后虽然输出都是cuda:0,但是只有cuda:0占用不到400M显存,cuda:2占用10G多,而且运行时使用率也是只有cuda:2有,Gold 6326+4090 1.58b速度4.75token/s。不过测试时输出一直在重复一个字,明天再测试一下性能

<!-- gh-comment-id:2741038475 --> @better-er commented on GitHub (Mar 20, 2025): > > 直接CUDA_VISIBLE_DEVICES=1 > > 不行,还是会启用第0张卡 先运行export CUDA_VISIBLE_DEVICES=2,再启动后虽然输出都是cuda:0,但是只有cuda:0占用不到400M显存,cuda:2占用10G多,而且运行时使用率也是只有cuda:2有,Gold 6326+4090 1.58b速度4.75token/s。不过测试时输出一直在重复一个字,明天再测试一下性能
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/ktransformers#465
No description provided.