如何提前知道如果创建矩阵将耗尽内存?
2次浏览(过去30天)
显示旧的注释
我需要创建一个大小为N × M的矩阵作为脚本的一部分,其中N和M是脚本的输入。
这样我就知道了N和M,然后根据它们的大小选择下面三种方法之一:
i)当N和M足够小时,我想创建一个gpu矩阵,相关矩阵将适合gpu而不会产生内存不足的错误。
ii)当N和M太大时,我想在cpu上创建矩阵。
iii)如果N和M太大,我将耗尽cpu上的内存,那么我想在cpu上创建一个稀疏矩阵。
有没有一种方法,一旦我知道了N和M,来检验矩阵是否可以创建?
[我可以使用'try-catch-end',与尝试只是错误时,创建一个矩阵太大的内存,但我更喜欢一些更干净的东西,因为我怀疑运行时做一个矩阵的try-catch太大的内存是浪费]
0评论
接受的答案
雷蒙德·诺里斯
2021年12月21日
看看
内存
命令,但它只适用于Windows操作系统。的
gpuDevice
命令将返回
AvailableMemory
GPU的。这可以让你开始。记住对它进行操作所需的内存(例如,添加矩阵,
fft
等)。有几个矩阵的GPU会占用多少内存,这可能会让你大吃一惊。