pyopencl

    -3熱度

    1回答

    對於大小爲4的向量做算術運算有很多PyopenCL的例子。如果我必須通過PyOpenCL在Mac上使用AMD GPU同時乘以100個整數100個整數,有人可以提供並解釋代碼嗎?由於最大向量大小可以是16,我想知道如何讓GPU執行此操作,並行處理多於16個整數。 我有一個AMD D500 firepro GPU。 每個工作項目(線程)是否獨立執行任務,如果是,則有24個計算單元,每個計算單元有255

    4熱度

    2回答

    我知道有一個openCL C++ API,但我在編譯內核時遇到了麻煩......內核是否必須用C編寫?然後它只是允許使用C++編寫的主機代碼?或者有沒有辦法用C++編寫內核,我沒有找到?具體來說,我試圖使用pyopencl編譯我的內核,並且它似乎失敗了,因爲它將它們編譯爲C代碼。

    0熱度

    1回答

    我正在編寫一個使用pypopencl進行蠻力攻擊的鄰居查找例程。稍後它將適用於我的平滑粒子水力碼。暴力當然不是有效的,但它的簡單和起點。我一直在測試我的查找內核,我發現當我在一個循環中運行它時,它會崩潰。我在python中沒有收到任何錯誤消息,但是屏幕閃爍,然後再次顯示圖形驅動程序失敗但已被恢復。奇怪的是,如果搜索到的粒子數量很少(〜1000或更少),那麼它確實很好。如果我增加計數(〜10k),它

    0熱度

    1回答

    我無法使用Nvidia實現中的write_imagef()函數編譯程序。 使用驅動程序版本367.35與Tesla K10.G2.8GB工作python 2.7與PyopenCL 2016.1, 我試圖編譯下面的程序,它失敗,生成錯誤: 主機代碼: import pyopencl as cl platform = cl.get_platforms()[0] devs = platform.g

    1熱度

    1回答

    我想使用pyopencl從numpy數組構建OpenCL 3D RGBA圖像。我知道cl.image_from_array()函數,它基本上就是這樣做的,但並沒有給出任何關於命令隊列或事件的控制權,這是由cl.enqueue_copy()公開的。所以我真的想使用後者的功能,將3D RGBA圖像從主機傳輸到設備,但我似乎無法獲得圖像構造函數的語法。在這種環境 所以 import pyopencl a

    2熱度

    1回答

    我已經研究了這個話題,而且似乎無法得出結論。 所以我知道OpenCL可以用於使用GPU和CPU的並行處理(與CUDA相反)。由於我想要使用GPU和CPU進行並行處理,使用python + PyOpenCL/PyCUDA的多處理模塊進行並行處理還是使用PyOpenCL處理GPU和CPU並行編程會更好? 我對此很新,但憑直覺,我會想象Python中的多處理模塊是在Python中執行CPU並行處理的最佳

    2熱度

    1回答

    我正在優化pyOpenCL中的Mandelbrot渲染器,並希望將塊中的迭代拆分,以便更好地利用我的GPU。 最大迭代次數= 1000和2個「塊」的示例: 1.運行mandelbrot轉義算法以進行迭代0-500。 2.保存每一點所需要的迭代,其中迭代< 500和所有其他點與500迭代再次運行 - 1000 第一循環的工作原理是預期,但之後每塊會導致錯誤的結果。我真的想更具體,但我不知道真正的問題

    2熱度

    2回答

    我試圖將代碼的內核部分與3「」「存儲在不同的文件中,我嘗試將它保存爲文本文件和bin文件,然後讀取它在,但我沒有找到成功,它開始給我一個錯誤,說「」「丟失,或)缺失。 「不過,如果我只是複製粘貼內核代碼爲cl.Program(,它的工作原理。 那麼,有沒有一種方法來抽象長內核代碼進行到另一個文件?這是具體到Python,謝謝! #Kernel function prg = cl.Program(

    0熱度

    1回答

    xx_np = np.random.rand(16500).astype(np.float32) u_np = np.random.rand(16500).astype(np.float32) vector_np = np.random.rand(16500).astype(np.float32) temp_np = np.random.rand(16500).astype(np.float

    1熱度

    1回答

    我想在OpenCL中擁有一個全局計數器,每個工作組中的每個工作項都可以增加一個全局計數器。 在我的內核我做的: #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable void increase(volatile __global int* counter) { atomic_inc(counter);