开发者社区 > 云原生 > Serverless > 正文

在函数计算FC换成24G显卡了,内存为什么没有释放呢?

在函数计算FC换成24G显卡了,内存为什么没有释放呢?lQLPJyEpEkF_Th9dzQb7sLedcmDQ5nVvBYaCrb_fhQA_1787_93.png

展开
收起
三分钟热度的鱼 2024-01-10 15:51:34 82 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果您在函数计算FC中使用了24G显卡,内存没有释放可能是由于显存管理问题。在使用PyTorch进行GPU计算时,确实会遇到显存管理的问题。可能的原因包括Batch_size设置过大,超过显存空间,或者之前程序运行结束后未释放显存。为了解决这个问题,您可以尝试以下方法:

    1. 减小Batch_size:如果Batch_size设置过大,超过显存空间,可以通过减小Batch_size来释放显存。

    2. 显式删除变量:使用del关键字显式删除不再需要的变量,这有助于Python的垃圾回收器释放不再使用的显存。

    3. 使用torch.cuda.empty_cache():这个方法可以清空GPU缓存,从而释放显存。

    4. 重启实例:如果以上方法都无法解决问题,您可以考虑重启函数计算实例,以便重新分配资源和释放内存。

    2024-01-13 14:54:59
    赞同 展开评论 打赏
  • 在使用函数计算FC并换成24G显卡后,如果发现内存没有释放,可能的原因和解决方案如下:

    1. 显存设置过大:当使用GPU进行计算时,如果显存设置过大超过了显卡的实际容量,可能会导致内存溢出。例如,当使用PyTorch GPU进行计算时,如果Batch_size设置过大超过显存空间,可以尝试减小Batch_size。

    2. 程序未正确释放显存:在一些情况下,如果程序运行结束后未能正确释放显存,也可能导致显存占用过高。此时,需要检查代码以确保在程序运行结束后正确地释放了显存。

    3. 并发度设置不合理:函数计算的弹性实例和GPU实例均支持按量模式和预留模式。按量模式根据请求时长计费,可以结合并发度设置提高实例的资源利用率。如果并发度设置不合理,可能会影响资源的释放。

    4. 其他错误:如果以上方法都无法解决问题,你可能需要查看函数计算的报错信息,以便进一步定位问题。

    2024-01-12 16:23:38
    赞同 展开评论 打赏
  • 配置里可以调整保持在内存中的模型个数,调小一点看看。可以参考下这些字段,具体功能还是需要去官方社区确认下

    "sd_checkpoint_cache": 7,
    "sd_vae_checkpoint_cache": 0,
    "sd_checkpoints_limit": 7,
    "sd_checkpoints_keep_in_cpu": true,
    "lora_in_memory_limit": 0,

    "interrogate_keep_models_in_memory": false, 此回答整理自钉群“【答疑群】函数计算 AIGC 场景技术交流”

    2024-01-10 16:03:20
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    阿里云E-MapReduce 全面开启 Serverless 立即下载
    内存取证与IaaS云平台恶意行 为的安全监控 立即下载
    云服务器ECS内存增强型实例re6全新发布 立即下载