arrayfire python 释放设备内存

arrayfire python free device memory

我正在尝试将 arrayfire 与 python 一起使用。

我有一个 GTX550Ti 并使用 opencl 后端,因为我似乎没有让 cuda 工作(不知道 550Ti 的计算版本 2.1 是否对 arrayfire 来说太低)。 我尝试释放使用

等语句分配的内存/数组
import numpy as np
import arrayfire as af

arr_h = np.arange(2**15,dtype=np.complex64)
arr_d = af.np_to_af_array(arr_h)

af.free_device(arr_d)

free_device 抱怨说它需要一个指针。 如果我使用

af.free_device(arr_d.raw_ptr())

af.free_device(arr_d.device_ptr())

我收到一个错误:

OSError: exception: access violation reading 0xFFFFFFFFFFFFFFFFFFF

那么..释放内存的正确方法是什么?

af.free_device(devicepointer)

释放一个设备对象。但是您正在尝试释放设备内的数组。我会尝试其中任何一个:

arr_d = af.Array()
arr_d = None
del arr_d