我正在使用 Databricks 在 Pytorch 中训练/测试模型,但我不断遇到没有意义的内存错误。在 Databricks 作业的配置中,我将
node_type_id
和 driver_node_type_id
指定为 g4dn.2xlarge
,根据 本指南 应提供高达 32GB 的内存。当我在 Databricks 上运行作业时,出现内存不足错误,提示 GPU 只有 14GB 可用内存:
CUDA out of memory. Tried to allocate 126.00 MiB (GPU 0; 14.76 GiB total capacity; 12.97 GiB already allocated; 99.75 MiB free; 13.20 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
我应该在配置 JSON 对象中更改另一个参数来告诉 Databricks 使用
g4dn.2xlarge
实例吗?
Databricks 确实使用您指定的实例类型;但是,
g4dn.2xlarge
实例类型有 32 GiB 内存,但其 GPU 只有 16 GiB 内存(其中一些内存总是由操作系统保留,因此您的错误数为 14.76 GiB)。
我建议寻找另一种能够满足您的工作负载的最低 GPU 内存要求的实例类型。由于 AWS 经常发布新的实例类型和新一代实例,因此我不会推荐特定的实例类型,但是 https://instances.vantage.sh/ 是查找具有满足您要求的过滤器的实例类型的好方法。