跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

抡锤者

  1. 主页
  2. AI硬件
  3. 大热的3090风冷改造方案 大幅降温稳定AI大脑

大热的3090风冷改造方案 大幅降温稳定AI大脑

已定时 已固定 已锁定 已移动 AI硬件
rtx3090
48 帖子 17 发布者 787 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • P pangfat

    @applejuice 你这是涡轮卡吧?靠得太近了,上面那个吸不到风,散热也就困难,我的PCIe间隔3-slot我都觉得太近。

    A 离线
    A 离线
    applejuice
    技术大牛 劳动模范
    编写于 最后由 编辑
    #32

    @pangfat 说:

    @applejuice 你这是涡轮卡吧?靠得太近了,上面那个吸不到风,散热也就困难,我的PCIe间隔3-slot我都觉得太近。

    之前插2slot nvlink 所以被逼这样

    但是nvlink遇到问题了
    寄回给 淘宝的华南金牌旗舰店,他们寄给供应商
    供应商说没问题
    但是 华南金牌旗舰店 自己测nvlink也是有问题
    还在扯皮

    如果再不回来我就要把第2张卡移下一格了

    A 1 条回复 最后回复
    0
    • K kenshin

      风道被打乱了。整机散热要考虑。风应该从散热片抽出。不是对着吹。另外,你们不做防尘吗?机器24小时开着。高贵的显卡很快集尘。多次拆了除尘增加风险。记得做好防尘。

      5 离线
      5 离线
      566656661
      超凡大师
      编写于 最后由 编辑
      #33

      @kenshin 说:

      风道被打乱了。整机散热要考虑。风应该从散热片抽出。不是对着吹。

      這個是局部風流, 只要機箱的風流方向一開始處理好就不會有問題

      吹出跟吹入分別不大

      1 条回复 最后回复
      0
      • K 离线
        K 离线
        kenshin
        编写于 最后由 编辑
        #34

        我也是集线器,接 CPUFAN。脚本控制全部风扇。包括 CPU 风扇和机箱风扇。根据 CPU 和 GPU 温度控制风扇转速。脚本是 Gemini 写的。
        按温度跑。
        pwm集线器接cpufan接口实现gpu+cpu双温控自动化调速脚本。

        已经将脚本路径、提权指令以及 Systemd 守护进程中的执行路径**全部严格统一为 /usr/local/bin/gpu_fan_control.sh**。同时,将服务名称也顺理成章地对齐为 gpu-fan-control.service,方便日后管理。

        直接复制并一次性粘贴到终端执行即可:

        1. 生成并赋予核心脚本权限

        sudo cat > /usr/local/bin/gpu_fan_control.sh << 'EOF'
        #!/bin/bash
        
        # ==========================================
        # CPU/GPU 双擎温度联合判定风扇控制脚本 (双向迟滞优化版)
        # ==========================================
        
        # ---------------------------------------------------------
        # 【模块 1:动态硬件寻址】
        # ---------------------------------------------------------
        find_hwmon_by_name() {
            local name=$1
            for d in /sys/class/hwmon/hwmon*; do
                if [ -f "$d/name" ] && [ "$(cat "$d/name")" = "$name" ]; then
                    echo "$d"
                    return 0
                fi
            done
            return 1
        }
        
        NCT_DIR=$(find_hwmon_by_name "nct6793")
        if [ -z "$NCT_DIR" ]; then
            echo "$(date): FATAL ERROR - Cannot find nct6793 hwmon module." >> /var/log/gpu_fan.log
            exit 1
        fi
        PWM_PATH="${NCT_DIR}/pwm2"
        PWM_EN="${PWM_PATH}_enable"
        
        GPU_DIR=$(find_hwmon_by_name "amdgpu")
        if [ -z "$GPU_DIR" ]; then
            echo "$(date): FATAL ERROR - Cannot find amdgpu hwmon module." >> /var/log/gpu_fan.log
            exit 1
        fi
        if [ -f "${GPU_DIR}/temp2_input" ]; then
            GPU_TEMP_PATH="${GPU_DIR}/temp2_input"
        else
            GPU_TEMP_PATH="${GPU_DIR}/temp1_input"
        fi
        
        CPU_DIR=$(find_hwmon_by_name "coretemp")
        if [ -z "$CPU_DIR" ] || [ ! -f "${CPU_DIR}/temp1_input" ]; then
            echo "$(date): FATAL ERROR - Cannot find CPU coretemp sensor." >> /var/log/gpu_fan.log
            exit 1
        fi
        CPU_TEMP_PATH="${CPU_DIR}/temp1_input"
        
        # ---------------------------------------------------------
        # 【模块 2:用户温控策略配置区】
        # ---------------------------------------------------------
        GPU_MIN_TEMP=50
        GPU_MAX_TEMP=75
        CPU_MIN_TEMP=55
        CPU_MAX_TEMP=85
        
        CRITICAL_TEMP=90
        CRITICAL_PWM=255
        
        FAN_MIN_PWM=40
        FAN_MAX_PWM=200
        
        CHECK_INTERVAL=5
        PWM_DECAY_STEP=8    # 声学阻尼:降温时,单次最大允许降低的 PWM 步长。避免“转速跳水”
        PWM_HYSTERESIS=5    # 迟滞死区:目标 PWM 变化绝对值 <= 5 时无视变化。屏蔽 1~2℃ 的波动杂音
        # ---------------------------------------------------------
        
        LAST_PWM=-1
        LOOP_COUNT=0
        
        # ---------------------------------------------------------
        # 【模块 3:安全兜底与进程退出机制】
        # ---------------------------------------------------------
        cleanup() {
            [[ -f "${PWM_EN}" ]] && echo 0 > "${PWM_EN}" 2>/dev/null
            echo "$(date): Fan controller stopped, restore fan control to BIOS." >> /var/log/gpu_fan.log
            exit 0
        }
        trap cleanup SIGTERM SIGINT
        
        if ! echo 1 > "${PWM_EN}" 2>/dev/null; then
            echo "$(date): FATAL ERROR - Open PWM enable failed, resource busy." >> /var/log/gpu_fan.log
            exit 1
        fi
        
        echo "$(date): Fan service start success | GPU source:${GPU_TEMP_PATH}" >> /var/log/gpu_fan.log
        
        # ---------------------------------------------------------
        # 【模块 4:常驻温控主循环】
        # ---------------------------------------------------------
        while true; do
            [[ -f "${PWM_EN}" ]] && echo 1 > "${PWM_EN}" 2>/dev/null
        
            if [ -f "${GPU_TEMP_PATH}" ]; then
                GPU_RAW=$(cat "${GPU_TEMP_PATH}" 2>/dev/null || echo 0)
                GPU_TEMP=$((GPU_RAW / 1000))
            else
                GPU_TEMP=0
            fi
        
            if [ -f "${CPU_TEMP_PATH}" ]; then
                CPU_RAW=$(cat "${CPU_TEMP_PATH}" 2>/dev/null || echo 0)
                CPU_TEMP=$((CPU_RAW / 1000))
            else
                CPU_TEMP=0
            fi
        
            if [ "${CPU_TEMP}" -ge "${CRITICAL_TEMP}" ] || [ "${GPU_TEMP}" -ge "${CRITICAL_TEMP}" ]; then
                TARGET_PWM=${CRITICAL_PWM}
                DOMINANT="CRITICAL"
            else
                # [GPU 独立计算]
                if [ "${GPU_TEMP}" -le "${GPU_MIN_TEMP}" ]; then
                    PWM_G=${FAN_MIN_PWM}
                elif [ "${GPU_TEMP}" -ge "${GPU_MAX_TEMP}" ]; then
                    PWM_G=${FAN_MAX_PWM}
                else
                    PWM_G=$(( (GPU_TEMP - GPU_MIN_TEMP) * (FAN_MAX_PWM - FAN_MIN_PWM) / (GPU_MAX_TEMP - GPU_MIN_TEMP) + FAN_MIN_PWM ))
                fi
        
                # [CPU 独立计算]
                if [ "${CPU_TEMP}" -le "${CPU_MIN_TEMP}" ]; then
                    PWM_C=${FAN_MIN_PWM}
                elif [ "${CPU_TEMP}" -ge "${CPU_MAX_TEMP}" ]; then
                    PWM_C=${FAN_MAX_PWM}
                else
                    PWM_C=$(( (CPU_TEMP - CPU_MIN_TEMP) * (FAN_MAX_PWM - FAN_MIN_PWM) / (CPU_MAX_TEMP - CPU_MIN_TEMP) + FAN_MIN_PWM ))
                fi
        
                # [取高者原则]
                if [ "${PWM_C}" -gt "${PWM_G}" ]; then
                    TARGET_PWM=${PWM_C}
                    DOMINANT="CPU"
                else
                    TARGET_PWM=${PWM_G}
                    DOMINANT="GPU"
                fi
        
                # [迟滞死区过滤 Hysteresis / Deadband]
                if [ "${LAST_PWM}" -ne -1 ] && [ "${DOMINANT}" != "CRITICAL" ]; then
                    PWM_DIFF=$(( TARGET_PWM - LAST_PWM ))
                    [ "${PWM_DIFF}" -lt 0 ] && PWM_DIFF=$(( -PWM_DIFF )) # 纯净 Bash 取绝对值法
                    
                    # 如果变动幅度在迟滞死区内,强制锁定为上一次的转速
                    if [ "${PWM_DIFF}" -le "${PWM_HYSTERESIS}" ]; then
                        TARGET_PWM=${LAST_PWM}
                    fi
                fi
        
                # [渐进降温阻尼过滤 Decay]
                if [ "${LAST_PWM}" -ne -1 ] && [ "${TARGET_PWM}" -lt "${LAST_PWM}" ]; then
                    CALC_DECAY=$((LAST_PWM - PWM_DECAY_STEP))
                    if [ "${CALC_DECAY}" -gt "${TARGET_PWM}" ]; then
                        TARGET_PWM=${CALC_DECAY}
                    fi
                fi
        
                # [硬性边界钳位]
                ((TARGET_PWM < FAN_MIN_PWM)) && TARGET_PWM=${FAN_MIN_PWM}
                ((TARGET_PWM > CRITICAL_PWM)) && TARGET_PWM=${CRITICAL_PWM}
            fi
        
            # [执行硬件指令]
            if [ "${TARGET_PWM}" -ne "${LAST_PWM}" ]; then
                if echo "${TARGET_PWM}" > "${PWM_PATH}" 2>/dev/null; then
                    LAST_PWM=${TARGET_PWM}
                else
                    echo "$(date): WARN write PWM ${TARGET_PWM} failed" >> /var/log/gpu_fan.log
                fi
            fi
        
            if [ "${LOOP_COUNT}" -eq 0 ]; then
                echo "$(date '+%Y-%m-%d %H:%M:%S') | CPU:${CPU_TEMP}℃ | GPU:${GPU_TEMP}℃ | Source:${DOMINANT} | PWM:${TARGET_PWM}" >> /var/log/gpu_fan.log
            fi
            
            ((LOOP_COUNT=(LOOP_COUNT+1)%6))
        
            sleep "${CHECK_INTERVAL}"
        done
        EOF
        
        sudo chmod +x /usr/local/bin/gpu_fan_control.sh
        
        

        2. 生成 Systemd 守护进程与日志轮转配置

        # 生成 Systemd 服务文件 (路径已精准对齐)
        sudo cat > /etc/systemd/system/gpu-fan-control.service << 'EOF'
        [Unit]
        Description=NCT6793 CPU+GPU Smart Fan Controller
        Requires=lm-sensors.service
        After=lm-sensors.service multi-user.target
        
        [Service]
        Type=simple
        ExecStart=/bin/bash /usr/local/bin/gpu_fan_control.sh
        Restart=on-failure
        RestartSec=3
        StandardOutput=null
        StandardError=journal
        
        [Install]
        WantedBy=multi-user.target
        EOF
        
        # 生成 Logrotate 日志清理规则
        sudo cat > /etc/logrotate.d/gpu-fan << 'EOF'
        /var/log/gpu_fan.log {
            daily
            rotate 7
            compress
            missingok
            copytruncate
            notifempty
        }
        EOF
        
        

        3. 应用配置并启动服务

        重载并启动全新的规范化服务

        sudo systemctl daemon-reload
        sudo systemctl enable gpu-fan-control.service
        sudo systemctl restart gpu-fan-control.service
        sudo systemctl status gpu-fan-control.service

        1 条回复 最后回复
        0
        • A applejuice

          @pangfat 说:

          @applejuice 你这是涡轮卡吧?靠得太近了,上面那个吸不到风,散热也就困难,我的PCIe间隔3-slot我都觉得太近。

          之前插2slot nvlink 所以被逼这样

          但是nvlink遇到问题了
          寄回给 淘宝的华南金牌旗舰店,他们寄给供应商
          供应商说没问题
          但是 华南金牌旗舰店 自己测nvlink也是有问题
          还在扯皮

          如果再不回来我就要把第2张卡移下一格了

          A 离线
          A 离线
          applejuice
          技术大牛 劳动模范
          编写于 最后由 编辑
          #35

          applejuice 说:

          @pangfat 说:

          @applejuice 你这是涡轮卡吧?靠得太近了,上面那个吸不到风,散热也就困难,我的PCIe间隔3-slot我都觉得太近。

          之前插2slot nvlink 所以被逼这样

          但是nvlink遇到问题了
          寄回给 淘宝的华南金牌旗舰店,他们寄给供应商
          供应商说没问题
          但是 华南金牌旗舰店 自己测nvlink也是有问题
          还在扯皮

          如果再不回来我就要把第2张卡移下一格了

          还的称赞下 华南金牌旗舰店
          他们测了有问题 但是供应商不同意
          华南金牌旗舰店 也同意退款了

          1 条回复 最后回复
          0
          • laihzang619L laihzang619

            @williamlouis 我也想横着放 但是主板的散热甲,还有内存 都不允许我横过来 我也是找了半天对了半天 才把散热片怼上的

            williamlouisW 离线
            williamlouisW 离线
            williamlouis
            超级版主
            编写于 最后由 编辑
            #36

            @laihzang619 买个角磨机配砂轮片。可以实现这个目标。或借一个。买个砂轮片 2元一片。

            个人主页:xlkj.org Telegram https://t.me/xlkjorg

            1 条回复 最后回复
            0
            • 张老师张 张老师

              @joker_chang 说:

              我的解决方案如下:

              看你图片的意思,两把小风扇是往外吹风,相当于把里面的热风吸走,是这个原理吧?

              J 离线
              J 离线
              joker_chang
              德高望重 劳动模范
              编写于 最后由 编辑
              #37

              @张老师 我认为是

              我的机器就在办公桌下面,我明显能感觉到桌下风扇风的温度变化😄

              cuda在运算的时候,风都是热的

              1 条回复 最后回复
              0
              • A 离线
                A 离线
                applejuice
                技术大牛 劳动模范
                编写于 最后由 编辑
                #38

                我前两天要把卡移下一格 结果发现 机箱根本没地方了

                1 条回复 最后回复
                0
                • Z 离线
                  Z 离线
                  znl
                  编写于 最后由 编辑
                  #39

                  换机箱另外再花1000块钱,改水冷

                  1 条回复 最后回复
                  0
                  • Z 离线
                    Z 离线
                    znl
                    编写于 最后由 编辑
                    #40

                    你这个卡,有问题,温度不会这么高,我也有一个3090 涡轮的。
                    满载最高温度74度。 正常待机,30多度。跑一点点程序,56度。

                    另外我还买了,水冷,1000多块钱。一会试试,

                    A 1 条回复 最后回复
                    0
                    • Z znl

                      你这个卡,有问题,温度不会这么高,我也有一个3090 涡轮的。
                      满载最高温度74度。 正常待机,30多度。跑一点点程序,56度。

                      另外我还买了,水冷,1000多块钱。一会试试,

                      A 离线
                      A 离线
                      applejuice
                      技术大牛 劳动模范
                      编写于 最后由 编辑
                      #41

                      @znl 不大敢搞水冷 怕弄坏了

                      1 条回复 最后回复
                      0
                      • Z 离线
                        Z 离线
                        znl
                        编写于 最后由 编辑
                        #42

                        不会,一会上教程。

                        1 条回复 最后回复
                        0
                        • Leon YL 离线
                          Leon YL 离线
                          Leon Y
                          编写于 最后由 编辑
                          #43

                          我的风冷方案
                          IMG_7432.jpeg

                          A 1 条回复 最后回复
                          1
                          • Leon YL Leon Y

                            我的风冷方案
                            IMG_7432.jpeg

                            A 离线
                            A 离线
                            applejuice
                            技术大牛 劳动模范
                            编写于 最后由 applejuice 编辑
                            #44

                            @Leon-Y 我羡慕nvlink
                            想问是什么平台

                            Leon YL 1 条回复 最后回复
                            0
                            • S 在线
                              S 在线
                              stxpnet
                              技术大牛 劳动模范
                              编写于 最后由 stxpnet 编辑
                              #45

                              我以前限制功耗,感觉有点娇贵,而且REDDIT经常说什么最佳功耗甜点。 现在入手3个月了,我管你这的那的,保持默认390W,频率让它自己调节。风扇全速拉起: 其实空闲的时候把它压在室温+10度,后面高负载的时候最多就72度吧。

                              f5c5df66-3325-414f-9d69-1381ec639551-image.jpeg

                              73f99888-02ae-44c0-9dbb-fc01ad131b00-image.jpeg

                              1 条回复 最后回复
                              1
                              • A applejuice

                                @Leon-Y 我羡慕nvlink
                                想问是什么平台

                                Leon YL 离线
                                Leon YL 离线
                                Leon Y
                                编写于 最后由 编辑
                                #46

                                @applejuice 你看我的帖子 https://lcz.me/topic/466/双3090-ollama-加载-q8-视觉模型瞬间断电重启-求老哥们把脉

                                A 1 条回复 最后回复
                                0
                                • Leon YL Leon Y

                                  @applejuice 你看我的帖子 https://lcz.me/topic/466/双3090-ollama-加载-q8-视觉模型瞬间断电重启-求老哥们把脉

                                  A 离线
                                  A 离线
                                  applejuice
                                  技术大牛 劳动模范
                                  编写于 最后由 applejuice 编辑
                                  #47

                                  @Leon-Y 换了电源就没事了? 我的症状跟你有点不同 也不懂是什么问题

                                  你的nvlink 3 slot 版本?

                                  Leon YL 1 条回复 最后回复
                                  0
                                  • A applejuice

                                    @Leon-Y 换了电源就没事了? 我的症状跟你有点不同 也不懂是什么问题

                                    你的nvlink 3 slot 版本?

                                    Leon YL 离线
                                    Leon YL 离线
                                    Leon Y
                                    编写于 最后由 编辑
                                    #48

                                    @applejuice 说:

                                    3 slot

                                    对,3 slot

                                    1 条回复 最后回复
                                    1

                                    你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                                    厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                                    有了你的建议,这篇帖子会更精彩哦 💗

                                    注册 登录
                                    回复
                                    • 在新帖中回复
                                    登录后回复
                                    • 从旧到新
                                    • 从新到旧
                                    • 最多赞同


                                    • 登录

                                    • 没有帐号? 注册

                                    • 登录或注册以进行搜索。
                                    • 第一个帖子
                                      最后一个帖子
                                    0
                                    • 版块
                                    • 最新
                                    • 标签
                                    • 热门
                                    • 用户
                                    • 群组