Better error checking during initialization
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 38/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- python
研究方向
首先,從 arrayfire.backend.name() 經過 arrayfire.Array() 以及 traceback 中顯示的 safe_call 路徑,追蹤 backend 初始化流程。確認目前如何檢查裝置可用性,並讓失敗報告提供有用的驅動程式或裝置錯誤;使用 issue 中描述的初始化情境驗證行為。
由索引模型根據 Issue 內容生成。
描述
Today I came across the following cryptic error message when trying to use arrayfire-python:
In [1]: import arrayfire
In [2]: arrayfire.backend.name()
Out[2]: 'cuda'
In [5]: arrayfire.Array()
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-5-6dffbbbc7abd> in <module>()
----> 1 arrayfire.Array()
/home/filipe/.local/lib/python2.7/site-packages/arrayfire-3.2.20151211-py2.7.egg/arrayfire/array.pyc in __init__(self, src, dims, dtype, is_device)
422 for n in range(numdims):
423 idims[n] = dims[n]
--> 424 self.arr = _create_empty_array(numdims, idims, to_dtype[type_char])
425
426 def as_type(self, ty):
/home/filipe/.local/lib/python2.7/site-packages/arrayfire-3.2.20151211-py2.7.egg/arrayfire/array.pyc in _create_empty_array(numdims, idims, dtype)
36 c_dims = dim4(idims[0], idims[1], idims[2], idims[3])
37 safe_call(backend.get().af_create_handle(ct.pointer(out_arr),
---> 38 numdims, ct.pointer(c_dims), dtype.value))
39 return out_arr
40
/home/filipe/.local/lib/python2.7/site-packages/arrayfire-3.2.20151211-py2.7.egg/arrayfire/util.pyc in safe_call(af_error)
73 err_len = ct.c_longlong(0)
74 backend.get().af_get_last_error(ct.pointer(err_str), ct.pointer(err_len))
---> 75 raise RuntimeError(to_str(err_str), af_error)
76
77 def get_version():
RuntimeError: ('Error in /var/lib/jenkins-slave/workspace/arrayfire-linux-mkl-graphics-installer/src/api/c/data.cpp(197):\n\n\n', 998)
The error was caused by a bad driver version:
$ nvidia-smi
Failed to initialize NVML: GPU access blocked by the operating system
I think it could be useful if arrayfire would test if a device is really available, instead of just checking if it can dlopen the relevant library. For example by calling arrayfire.Array(). If that would fail a more useful error could be returned to the user.
- 主要語言
- Python
- 星號
- 422
- 分支
- 63
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
arrayfire/arrayfire-python 的其他 Issue
-
難度 5/5 一週以上 新手友好度 25/100
arrayfire/arrayfire-python#271 ·
-
難度 5/5 一週以上 新手友好度 25/100
arrayfire/arrayfire-python#270 ·
-
難度 4/5 3-5 天 新手友好度 35/100
arrayfire/arrayfire-python#269 ·
-
難度 4/5 3-5 天 新手友好度 38/100
arrayfire/arrayfire-python#268 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 48/100
arrayfire/arrayfire-python#267 · 1 則留言 · 1 個 reaction ·
查看 arrayfire/arrayfire-python 的全部 Issue
相似的 Issue
-
bug
難度 2/5 1-3 小時 新手友好度 90/100
learningequality/ricecooker#747 ·
-
難度 2/5 1-3 小時 新手友好度 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
難度 2/5 1-3 小時 新手友好度 72/100
-
難度 2/5 1-3 小時 新手友好度 76/100
run-llama/llama_index#23199 ·
-
難度 2/5 1-3 小時 新手友好度 84/100
KhronosGroup/glTF-Blender-IO#2769 ·