gpt4 book ai didi

matlab - 在matlab中有效地使用GPU的内存

转载 作者:行者123 更新时间:2023-12-04 10:19:48 24 4
gpt4 key购买 nike

我在 matlab 中使用 GPU 进行计算。而且我不断收到Out of memory问题。
所以我想我可以从 double 转换我的一些变量,这是matlab的默认类型,到single .然后我做了以下实验

A = gpuArray([1,2,3])
A =
1 2 3

whos A
Name Size Bytes Class
A 1*3 4 gpuArray

B = gpuArray(single([1,2,3]))
B =
1*3 gpuArray single row vector
1 2 3

whos B
Name Size Bytes Class
B 1*3 4 gpuArray

现在我有点困惑。一方面,它确实向我展示了 B1*3 gpuArray single row vector .然而,另一方面, whos命令显示 A 之间没有区别和 B .

我想知道这是否 doublesingle转换确实会帮助我减少我的 GPU 在 matlab 中的内存使用。基本上,我的问题是:当我在 cpu 上移动 2 个变量时,一个是 double另一个是 single ,对于gpu,它们是否在matlab中消耗了相同数量的GPU内存? whos命令显示没有区别。

最佳答案

请注意以下事项:

A = gpuArray([1:1000])
whos A
Name Size Bytes Class Attributes

A 1x1000 4 gpuArray

有趣的!只有 4 个字节!
但这有一个简单的解释: whos只给你 CPU RAM 上变量的大小。它是 4 个字节,因为它只是一个内存地址,而不是数据本身。数据在 GPU 上,CPU 不能“轻易”访问它。

回答您的问题:是的, single将占用 double 的一半内存在 GPU 上。

关于matlab - 在matlab中有效地使用GPU的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60909249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com