Vulkan vkEnum CảPhysicalDevices Trả lại số lượng thiết bị không mong đợi


8

Trong máy tôi đang chạy, tôi có hai GTX 980 Tis. Khi tôi truy vấn số thiết bị vật lý với vkEnumeratePhysicalDevicesnó luôn trả về 1 mặc dù có 2 card đồ họa rời. Khi tôi sử dụng vulkaninfocác thiết bị chỉ được liệt kê là GPU0đó là một DISCRETE_GPU/ GTX 980 Ti.

Điều này xảy ra trong Windows 10 cũng như GNU / Linux 4.5 khi sử dụng Vulkan API 1.0.11 với trình điều khiển Nvidia độc quyền.

Đây có phải là hành vi bình thường và tôi không sử dụng API chính xác hay đây là một lỗi? Tôi cảm thấy như mình đã phạm một lỗi rõ ràng rõ ràng nhưng tôi không thể tìm thấy bất cứ điều gì trong đặc tả của Vulkan về nó.

Để rõ ràng, đây chính xác là cách tôi truy vấn số lượng thiết bị vật lý:

auto deviceCount = uint32_t{0};
instance.enumeratePhysicalDevices(&deviceCount, nullptr);
// At this point deviceCount is 1

Ngoài ra, để xác nhận rằng HĐH nhìn thấy các thẻ:

Windows 10:

C:\Users\matt>wmic path win32_VideoController get name
Name
NVIDIA GeForce GTX 980 Ti
NVIDIA GeForce GTX 980 Ti

GPU trong Cài đặt trình điều khiển Nvidia

Linux 4.5:

+------------------------------------------------------+                       
| NVIDIA-SMI 364.19     Driver Version: 364.19         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 0000:01:00.0      On |                  N/A |
|  0%   56C    P8    34W / 300W |    444MiB /  6140MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 980 Ti  Off  | 0000:02:00.0     Off |                  N/A |
|  0%   43C    P8    25W / 300W |     22MiB /  6143MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

GPU trong Cài đặt máy chủ Nvidia XServer

vulkan 

GPU tích hợp thường bị vô hiệu hóa (?) Bởi bo mạch chủ nếu tìm thấy GPU rời. Có thể nhìn thấy trong trình quản lý thiết bị?
Andreas

Đó không phải là một yếu tố ở đây, tôi không quan tâm đến GPU tích hợp, chỉ các GPU rời.

Đồng ý. Bạn có thể hiển thị mọi thứ bằng cách sử dụng cả GPU rời: s không?
Andreas

1
Vâng, tất nhiên, tôi đã đính kèm thêm thông tin để cho thấy rằng cả Win10 và Linux đều đang nhận thẻ. Tôi đã sử dụng cả hai thẻ cho CUDA cũng như SLI với Direct3D và OpenGL.

1
@Andreas nullptr và NULL chỉ khác nhau ở chỗ NULL có thể bị hiểu sai thành một số nguyên, cả hai đều được hiểu là hằng số con trỏ null trong ngữ cảnh con trỏ.
Lars Viklund

Câu trả lời:


5

Từ Câu hỏi thường gặp về LunarG :

Không có nhiều hỗ trợ GPU trong phiên bản 1.0. Thật không may, đó là một tính năng mà Khronos phải cắt giảm để duy trì lịch trình. Dự kiến ​​nó sẽ ở gần đầu danh sách cho Vulkan 1.1. Việc triển khai Vulkan là hoàn toàn có thể để lộ nhiều GPU. Những gì Vulkan hiện không thể làm là cho phép chia sẻ tài nguyên giữa chúng. Vì vậy, từ quan điểm, ví dụ, người quản lý hệ thống Windows, có thể nhận ra nhiều cách để hiển thị lên bề mặt và sau đó sử dụng móc hệ điều hành để chuyển nó sang màn hình. Những gì Vulkan không có là khả năng chia sẻ kết cấu hoặc mục tiêu kết xuất giữa nhiều GPU.

Tôi sẽ viết vấn đề này như là một điều chưa được thực hiện bởi vì họ chưa yêu cầu họ thực hiện nó. Khi Vulkan bổ sung hỗ trợ đa GPU tốt hơn được yêu cầu trong thông số kỹ thuật của họ, những vấn đề này rất có thể sẽ được khắc phục. Điều kỳ lạ là nó vẫn không để lộ GPU có sẵn, nhưng ngay cả khi có, Vulkan 1.0.x vẫn chưa sẵn sàng để sử dụng nhiều GPU theo cách có lợi cho trò chơi.

Cập nhật kể từ ngày 23/7/2016: Với trình điều khiển Nvidia GeForce v368,69, nhiều GPU được hiển thị cho Vulkan.

Không thay đổi bất cứ điều gì (vẫn sử dụng Vulkan API v1.0.11) và cập nhật lên trình điều khiển mới nhất của Nvidia, tôi có quyền truy cập đầy đủ vào cả hai thiết bị vật lý trên máy của mình, điều này không có nghĩa là hỗ trợ Multi-GPU ở đây, nhưng đó là bước đầu tiên trong Vulkan thậm chí là một lựa chọn khả thi khi phát triển một trò chơi.


0

Bạn nên tắt / xóa cầu SLI.
Đó là sai lầm rõ ràng rõ ràng tôi đang thấy ở đây AFAIK.


Điều đó hoàn toàn không có liên quan đến nó, xem câu trả lời của tôi, nó đã được giải quyết.

@MattJensJensen Tại thời điểm của câu hỏi này, việc triển khai của NVIDIA đã hiển thị kết hợp SLI chứ không phải các thẻ riêng lẻ, đó là những gì tôi đang đề cập.
bit2shift

Không, nó không dành cho tôi, nếu không có cây cầu SLI, chỉ có một thẻ được nhìn thấy.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.