Alea неправильно освобождает память

Похоже, что Alea неправильно распределяет класс DeviceMemory2D

мой код для проверки свободной памяти

let getFreeMemory () =
    let free = Marshal.AllocHGlobal sizeof<uint64>
    let total = Marshal.AllocHGlobal sizeof<uint64>

    let freePtr = NativeInterop.NativePtr.ofNativeInt<nativeint> free
    let totalPtr = NativeInterop.NativePtr.ofNativeInt<nativeint> total

    CUDAInterop.cuMemGetInfo(freePtr, totalPtr)
    |> cuSafeCall

    let result = NativeInterop.NativePtr.get freePtr 0

    Marshal.FreeHGlobal free
    Marshal.FreeHGlobal total

    uint64 result

А вот код, который проверяет, есть ли утечка

Seq.init 100 (fun _ -> 
        use arr = Gpu.Default.AllocateDevice<float>(1000,1000) 

        getFreeMemory()
        |> printfn "%d"
    )
|> Seq.iter id

Выходы

Из выходного изображения память, кажется, не распределяется

1 ответ

Решение

Можете ли вы попробовать последнюю бета-версию: https://www.nuget.org/packages/Alea/3.0.4-beta3

Другие вопросы по тегам