OpenCL interoperability does not work on 64-bit OS
還沒有人認領這個 Issue。
評估
研究方向
受影響的入口點位於 arrayfire/opencl.py 的第 88 行和第 156 行附近,以及該檔案中其他使用 c_int_t 的位置。先閱讀這些 ctypes 宣告,然後重現 64 位元 Windows OpenCL/PyOpenCL 設定;完成的標準是裝置 ID 以及共用的裝置、內容和佇列值不再溢位,並且互通性正常運作。
由索引模型根據 Issue 內容生成。
描述
Currently the OpenCL interoperability does not work on 64-bit Windows machine. The reason for this is the use of c_int_t which defaults to long on Windows (which on the other hand is 32-bit). This can be problematic with things like device IDs as they can easily go over 2^32/2-1. For example https://github.com/arrayfire/arrayfire-python/blob/master/arrayfire/opencl.py#L88 uses c_int_t, as well as a few other functions in the same file. This can be fixed by replacing the c_int_t with, for example, c_void_ptr_t as it is used with the context. Is there by the way some specific reason why context is treated differently?
There is also another issue. When the context is created by PyOpenCL, the input device, context and queue values are input as python ints in order to use the same context and queue, but on Windows you get <class 'OverflowError'>: int too long to convert errors then. These can be avoided by casting them to, for example, c_int64-types. For example in https://github.com/arrayfire/arrayfire-python/blob/master/arrayfire/opencl.py#L156, replace safe_call(backend.get().afcl_add_device_context(dev, ctx, que)) with safe_call(backend.get().afcl_add_device_context(ct.c_int64(dev), ct.c_int64(ctx), ct.c_int64(que))) (using c_void_p seems to work too).
I haven't tested these changes extensively, but they do seem to get things working on 64-bit Windows. I can provide a PR if needed.
- 主要語言
- 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
-
Add: hunch 未關閉
難度 2/5 1-3 小時 新手友好度 74/100
AbdelStark/awesome-typesafe#104 ·
-
enhancement
難度 2/5 1-3 小時 新手友好度 72/100
-
難度 2/5 1-3 小時 新手友好度 68/100
DiamondLightSource/dodal#2211 ·
-
難度 2/5 1-3 小時 新手友好度 88/100
openml/openml-python#1749 ·
-
難度 2/5 1-3 小時 新手友好度 88/100
sipyourdrink-ltd/bernstein#6191 ·