Finding the cause for ZE_RESULT_ERROR_UNINITIALIZED
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp
- Lĩnh vực
- api, operating-systems
Hướng nghiên cứu
Bắt đầu với điểm vào zeInit và đầu ra ZE_LOADER_DEBUG_TRACE được hiển thị trong issue, sau đó so sánh các trường hợp lỗi đã được báo cáo liên quan đến /dev/dri, việc tải driver và các phiên bản thư viện. Không có tệp nguồn hoặc bài kiểm thử nào được nêu; để hoàn thành sẽ cần một chẩn đoán hoặc hành vi API đã được thống nhất, giúp phân biệt và kiểm thử được các lỗi khởi tạo này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I'm working on oneAPI.jl, which provides Julia support for Intel GPUs through Level Zero. Occasionally, we run into users reporting that they run into an opaque ZE_RESULT_ERROR_UNINITIALIZED when we call zeInit during loading of oneAPI.jl. This is an unhelpful error, and it makes it impossible to use the Level Zero APIs to figure out what's actually happening. For example, I've run into:
- users not having a (supported) GPU
- restrictive permissions on
/dev/dri - conflicting library versions picked up (e.g. redistributed
libze_loadervs systemlibze_tracing_layer)
Apart from the last one, I wouldn't expect the loader to fail to initialize, but still allow iterating drivers (why else this abstraction?) and ideally being able to determine why there's no devices. Currently, we typically find this out after a painstaking remote debugging session using strace or LD_DEBUG.
Am I missing something in the API here? CUDA for example has error codes that indicate at least a little better what may be happening happening (CUDA_ERROR_NO_DEVICE, CUDA_ERROR_DEVICE_UNAVAILABLE, CUDA_ERROR_DEVICE_NOT_LICENSED, etc).
Apart from the above API issue, I also have a concrete case where a user's system keeps on throwing ZE_RESULT_ERROR_UNINITIALIZED: https://github.com/JuliaGPU/oneAPI.jl/issues/399. LD_DEBUG reveals that the correct libraries are found, and strace shows that /dev/dri nodes are successfully discovered and opened.
I've found out about some environment variables to increase logging, but the output isn't very helpful:
❯ ZE_ENABLE_LOADER_DEBUG_TRACE=1 julia ...
ZE_LOADER_DEBUG_TRACE:Loading Driver libze_intel_gpu.so.1
ZE_LOADER_DEBUG_TRACE:Loading Driver libze_intel_vpu.so.1
ZE_LOADER_DEBUG_TRACE:Load Library of libze_intel_vpu.so.1 failed with libze_intel_vpu.so.1: cannot open shared object file: No such file or directory
ZE_LOADER_DEBUG_TRACE:Load Library of libze_tracing_layer.so.1 failed with libze_tracing_layer.so.1: cannot open shared object file: No such file or directory
ZE_LOADER_DEBUG_TRACE:check_drivers(flags=0(ZE_INIT_ALL_DRIVER_TYPES_ENABLED))
ZE_LOADER_DEBUG_TRACE:init driver libze_intel_gpu.so.1 zeInit(0(ZE_INIT_ALL_DRIVER_TYPES_ENABLED)) returning ZE_RESULT_ERROR_UNINITIALIZED
ZE_LOADER_DEBUG_TRACE:Check Drivers Failed on libze_intel_gpu.so.1 , driver will be removed. zeInit failed with ZE_RESULT_ERROR_UNINITIALIZED
❯ NEOReadDebugKeys=1 PrintDebugMessages=1 PrintXeLogs=1 julia ...
...
INFO: System Info query failed!
WARNING: Failed to request OCL Turbo Boost
ZE_LOADER_DEBUG_TRACE:init driver libze_intel_gpu.so.1 zeInit(0(ZE_INIT_ALL_DRIVER_TYPES_ENABLED)) returning ZE_RESULT_ERROR_UNINITIALIZED
ZE_LOADER_DEBUG_TRACE:Check Drivers Failed on libze_intel_gpu.so.1 , driver will be removed. zeInit failed with ZE_RESULT_ERROR_UNINITIALIZED
Any other suggestions on how to debug this would be much appreciated.
- Ngôn ngữ chính
- C++
- Star
- 337
- Fork
- 140
- Merge trung bình
- 19 giờ 53 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của oneapi-src/level-zero
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
oneapi-src/level-zero#495 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Importing pyzes fails because _LoadZeLibrary() hardcodes /usr/lib/x86_64-linux-gnu/libCó thể đã có người làm @saforem2 đã nhận 83 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
oneapi-src/level-zero#485 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
oneapi-src/level-zero#447 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Need DMA/RDMA supportĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
oneapi-src/level-zero#482 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
oneapi-src/level-zero#419 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của oneapi-src/level-zero
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Icinga/icinga2#11077 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
agent:WSL bug linux LOW ui
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Copter: PosHold brake-entry threshold became 16 deg instead of 0.16 deg after the radians conversionCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
ArduPilot/ardupilot#34617 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
tesseract-robotics/tesseract_nanobind#168 ·
Maintainer thường phản hồi trong vòng 1 ngày