0
let sumModule = (new DeviceSumModuleF32(GPUModuleTarget.Worker(worker))).Create(2e2 |> int)
let t = worker.Malloc([|1.0f;1.0f;1.0f;1.0f;|])
let q = sumModule.Reduce(t.Ptr,4)
沒有失敗,上面的代碼崩潰,最後一行每次運行的概率爲66%。我試過改變參數,但沒有區別。我認爲DeviceSumModuleF32可能被破壞。DeviceSumModuleF32被破壞
let sumModule = (new DeviceReduceModule<float32>(GPUModuleTarget.Worker(worker),<@ (+) @>)).Create(2e9 |> int)
let t = worker.Malloc([|1.0f;1.0f;1.0f;1.0f;|])
let q = sumModule.Reduce(t.Ptr,4)
上面的工作使用DeviceReduceModule雖然完美。
編輯:我已經寫,而不是崩潰,它進入一個無限循環。對於那個很抱歉。
沒有。嘗試將其切換到線程模式,並沒有幫助。儘管編寫了我自己的reduce模塊,但我已經解決了這個問題。 –