configure_mlx.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env bash
  2. # Get the total memory in MB
  3. TOTAL_MEM_MB=$(($(sysctl -n hw.memsize) / 1024 / 1024))
  4. # Calculate 80% and TOTAL_MEM_GB-5GB in MB
  5. EIGHTY_PERCENT=$(($TOTAL_MEM_MB * 80 / 100))
  6. MINUS_5GB=$((($TOTAL_MEM_MB - 5120)))
  7. # Calculate 70% and TOTAL_MEM_GB-8GB in MB
  8. SEVENTY_PERCENT=$(($TOTAL_MEM_MB * 70 / 100))
  9. MINUS_8GB=$((($TOTAL_MEM_MB - 8192)))
  10. # Set WIRED_LIMIT_MB to higher value
  11. if [ $EIGHTY_PERCENT -gt $MINUS_5GB ]; then
  12. WIRED_LIMIT_MB=$EIGHTY_PERCENT
  13. else
  14. WIRED_LIMIT_MB=$MINUS_5GB
  15. fi
  16. # Set WIRED_LWM_MB to higher value
  17. if [ $SEVENTY_PERCENT -gt $MINUS_8GB ]; then
  18. WIRED_LWM_MB=$SEVENTY_PERCENT
  19. else
  20. WIRED_LWM_MB=$MINUS_8GB
  21. fi
  22. # Display the calculated values
  23. echo "Total memory: $TOTAL_MEM_MB MB"
  24. echo "Maximum limit (iogpu.wired_limit_mb): $WIRED_LIMIT_MB MB"
  25. echo "Lower bound (iogpu.wired_lwm_mb): $WIRED_LWM_MB MB"
  26. # Apply the values with sysctl, but check if we're already root
  27. if [ "$EUID" -eq 0 ]; then
  28. sysctl -w iogpu.wired_limit_mb=$WIRED_LIMIT_MB
  29. sysctl -w iogpu.wired_lwm_mb=$WIRED_LWM_MB
  30. else
  31. # Try without sudo first, fall back to sudo if needed
  32. sysctl -w iogpu.wired_limit_mb=$WIRED_LIMIT_MB 2>/dev/null || \
  33. sudo sysctl -w iogpu.wired_limit_mb=$WIRED_LIMIT_MB
  34. sysctl -w iogpu.wired_lwm_mb=$WIRED_LWM_MB 2>/dev/null || \
  35. sudo sysctl -w iogpu.wired_lwm_mb=$WIRED_LWM_MB
  36. fi