有没有办法在每次运行时通过 arrayfire 重置 GPU 而无需重新启动 Python 控制台?
我有一个 python 脚本,它使用 arrayfire 调用许多要在 GPU 上执行的函数。该脚本在运行一次时会给出预期的结果,但如果第二次运行而不更改任何参数,它会返回NaN
值。一旦我重新启动 Python 控制台,或者等效地运行以下命令,这就会停止:
import arrayfire as af
af.device.free_device(af.device.device_mem_info()['alloc']['bytes'])
清除所有分配的设备内存后重新启动控制台。
我很难看出这里可能出了什么问题;该程序第一次运行良好,所以我认为它很可能是我在我丢失的文档中找不到的命令。
我已经尝试了文档中看起来很有希望的大多数功能(device_gc
, free_device
, free_pinned
,device.init
等),但运气不佳。我也尝试过使用reload(arrayfire)
。
这可能是一个错误吗?任何意见,将不胜感激。
我正在使用:nvidia quadro M4000、Python 2.7、Windows 7、Spyder 3