Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

我有3个GPU,但get_gpu_count()=1 #5440

Open
1027663760 opened this issue Apr 24, 2024 · 8 comments
Open

我有3个GPU,但get_gpu_count()=1 #5440

1027663760 opened this issue Apr 24, 2024 · 8 comments

Comments

@1027663760
Copy link

windows11,用的最新版ncnn.

但是用darknet训练或者识别都可以正常用到两个p40

1

@wzyforgit
Copy link
Contributor

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致
可以通过vulkaninfo命令查看vulkan识别到的设备

@1027663760
Copy link
Author

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致 可以通过vulkaninfo命令查看vulkan识别到的设备

vulkaninfo 也只能看到一个GPU,那这样的话是不是无解了

=================
VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id = 0 (NVIDIA GeForce RTX 3060)
Layer-Device Extensions: count = 0

VK_LAYER_TENCENT_wegame_cross_overlay (Cross Overlay Layer) Vulkan version 1.1.121, layer version 1:
Layer Extensions: count = 0
Devices: count = 1
GPU id = 0 (NVIDIA GeForce RTX 3060)
Layer-Device Extensions: count = 0

Presentable Surfaces:

GPU id : 0 (NVIDIA GeForce RTX 3060):
Surface type = VK_KHR_win32_surface
Formats: count = 5
SurfaceFormat[0]:
format = FORMAT_B8G8R8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[1]:
format = FORMAT_B8G8R8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[2]:
format = FORMAT_R8G8B8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[3]:
format = FORMAT_R8G8B8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[4]:
format = FORMAT_A2B10G10R10_UNORM_PACK32
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
Present Modes: count = 4
PRESENT_MODE_FIFO_KHR
PRESENT_MODE_FIFO_RELAXED_KHR
PRESENT_MODE_MAILBOX_KHR
PRESENT_MODE_IMMEDIATE_KHR
VkSurfaceCapabilitiesKHR:
-------------------------

@wzyforgit
Copy link
Contributor

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致 可以通过vulkaninfo命令查看vulkan识别到的设备

vulkaninfo 也只能看到一个GPU,那这样的话是不是无解了

================= VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0

VK_LAYER_TENCENT_wegame_cross_overlay (Cross Overlay Layer) Vulkan version 1.1.121, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0

Presentable Surfaces:

GPU id : 0 (NVIDIA GeForce RTX 3060): Surface type = VK_KHR_win32_surface Formats: count = 5 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[2]: format = FORMAT_R8G8B8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[3]: format = FORMAT_R8G8B8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[4]: format = FORMAT_A2B10G10R10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_IMMEDIATE_KHR VkSurfaceCapabilitiesKHR: -------------------------

可以再去NV那边找找看有没有支持的驱动,实在没有的话那确实没办法了
毕竟vulkan sdk只是说提供一个接口,具体是否支持还是要看显卡驱动的

@1027663760
Copy link
Author

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致 可以通过vulkaninfo命令查看vulkan识别到的设备

vulkaninfo 也只能看到一个GPU,那这样的话是不是无解了
================= VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0
VK_LAYER_TENCENT_wegame_cross_overlay (Cross Overlay Layer) Vulkan version 1.1.121, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0

Presentable Surfaces:

GPU id : 0 (NVIDIA GeForce RTX 3060): Surface type = VK_KHR_win32_surface Formats: count = 5 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[2]: format = FORMAT_R8G8B8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[3]: format = FORMAT_R8G8B8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[4]: format = FORMAT_A2B10G10R10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_IMMEDIATE_KHR VkSurfaceCapabilitiesKHR: -------------------------

可以再去NV那边找找看有没有支持的驱动,实在没有的话那确实没办法了 毕竟vulkan sdk只是说提供一个接口,具体是否支持还是要看显卡驱动的

看来N卡还是用cuda最好,兼容性也很强,下到gtx750上到4090再到各种专业卡都支持

@nihui
Copy link
Member

nihui commented Apr 28, 2024

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致 可以通过vulkaninfo命令查看vulkan识别到的设备

vulkaninfo 也只能看到一个GPU,那这样的话是不是无解了
================= VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0
VK_LAYER_TENCENT_wegame_cross_overlay (Cross Overlay Layer) Vulkan version 1.1.121, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0

Presentable Surfaces:

GPU id : 0 (NVIDIA GeForce RTX 3060): Surface type = VK_KHR_win32_surface Formats: count = 5 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[2]: format = FORMAT_R8G8B8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[3]: format = FORMAT_R8G8B8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[4]: format = FORMAT_A2B10G10R10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_IMMEDIATE_KHR VkSurfaceCapabilitiesKHR: -------------------------

可以再去NV那边找找看有没有支持的驱动,实在没有的话那确实没办法了 毕竟vulkan sdk只是说提供一个接口,具体是否支持还是要看显卡驱动的

看来N卡还是用cuda最好,兼容性也很强,下到gtx750上到4090再到各种专业卡都支持

但是吧,cuda新版本也会废弃一些老卡的兼容性....

以及,我记得 linux 下 p40 安装驱动的时候要记得勾选安装 opengl 支持,只安装cuda的驱动是不够的,vulkan 的部分在 opengl 那边

@1027663760
Copy link
Author

NCNN的GPU推理是基于vulkan的,可能是你的P40的驱动不支持vulkan导致 可以通过vulkaninfo命令查看vulkan识别到的设备

vulkaninfo 也只能看到一个GPU,那这样的话是不是无解了
================= VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.277, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0
VK_LAYER_TENCENT_wegame_cross_overlay (Cross Overlay Layer) Vulkan version 1.1.121, layer version 1: Layer Extensions: count = 0 Devices: count = 1 GPU id = 0 (NVIDIA GeForce RTX 3060) Layer-Device Extensions: count = 0

Presentable Surfaces:

GPU id : 0 (NVIDIA GeForce RTX 3060): Surface type = VK_KHR_win32_surface Formats: count = 5 SurfaceFormat[0]: format = FORMAT_B8G8R8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[1]: format = FORMAT_B8G8R8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[2]: format = FORMAT_R8G8B8A8_UNORM colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[3]: format = FORMAT_R8G8B8A8_SRGB colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR SurfaceFormat[4]: format = FORMAT_A2B10G10R10_UNORM_PACK32 colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR Present Modes: count = 4 PRESENT_MODE_FIFO_KHR PRESENT_MODE_FIFO_RELAXED_KHR PRESENT_MODE_MAILBOX_KHR PRESENT_MODE_IMMEDIATE_KHR VkSurfaceCapabilitiesKHR: -------------------------

可以再去NV那边找找看有没有支持的驱动,实在没有的话那确实没办法了 毕竟vulkan sdk只是说提供一个接口,具体是否支持还是要看显卡驱动的

看来N卡还是用cuda最好,兼容性也很强,下到gtx750上到4090再到各种专业卡都支持

但是吧,cuda新版本也会废弃一些老卡的兼容性....

以及,我记得 linux 下 p40 安装驱动的时候要记得勾选安装 opengl 支持,只安装cuda的驱动是不够的,vulkan 的部分在 opengl 那边

我这里不需要这么麻烦,就安装3060的驱动 p40就自动识别了,然后 darknet就能直接跑,我是windows系统

@TianZerL
Copy link
Contributor

TianZerL commented May 7, 2024

Windows下装谷歌提供的grid驱动就能用图形功能了

@1027663760
Copy link
Author

Windows下装谷歌提供的grid驱动就能用图形功能了

grid驱动安装后 3060就认不到了...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants