88 lines
2.8 KiB
Bash
88 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Memory Optimization Script for AMD Strix Halo Mining
|
|
# Analyzes current memory allocation and provides optimization recommendations
|
|
|
|
echo "=== AMD Strix Halo Memory Analysis ==="
|
|
echo ""
|
|
|
|
# Check current memory usage
|
|
echo "Current Memory Status:"
|
|
echo "======================"
|
|
free -h
|
|
echo ""
|
|
|
|
# Check GPU memory allocation
|
|
echo "GPU Memory Allocation:"
|
|
echo "======================"
|
|
if [ -f "/sys/class/drm/card1/device/mem_info_vram_total" ]; then
|
|
GPU_TOTAL=$(sudo cat /sys/class/drm/card1/device/mem_info_vram_total)
|
|
GPU_USED=$(sudo cat /sys/class/drm/card1/device/mem_info_vram_used)
|
|
|
|
GPU_TOTAL_GB=$((GPU_TOTAL / 1024 / 1024 / 1024))
|
|
GPU_USED_GB=$((GPU_USED / 1024 / 1024 / 1024))
|
|
GPU_WASTED_GB=$((GPU_TOTAL_GB - GPU_USED_GB))
|
|
|
|
echo "Total GPU VRAM allocated: ${GPU_TOTAL_GB}GB"
|
|
echo "GPU VRAM actually used: ${GPU_USED_GB}GB"
|
|
echo "GPU VRAM wasted: ${GPU_WASTED_GB}GB"
|
|
echo ""
|
|
fi
|
|
|
|
# Check current kernel parameters
|
|
echo "Current Kernel Parameters:"
|
|
echo "========================="
|
|
cat /proc/cmdline | grep -o "amdgpu\.[^ ]*" | head -5
|
|
echo ""
|
|
|
|
# Check if huge pages are available
|
|
echo "Huge Pages Status:"
|
|
echo "=================="
|
|
if [ -f "/proc/sys/vm/nr_hugepages" ]; then
|
|
NR_HUGEPAGES=$(cat /proc/sys/vm/nr_hugepages)
|
|
HUGEPAGES_FREE=$(cat /proc/sys/vm/free_hugepages)
|
|
echo "Total huge pages: ${NR_HUGEPAGES}"
|
|
echo "Free huge pages: ${HUGEPAGES_FREE}"
|
|
echo ""
|
|
fi
|
|
|
|
# Recommendations
|
|
echo "Optimization Recommendations:"
|
|
echo "============================"
|
|
echo "1. GPU Memory Reduction:"
|
|
echo " - Current: 96GB allocated, only 1.6GB used"
|
|
echo " - Recommendation: Reduce to 4-8GB in BIOS/UEFI"
|
|
echo " - Potential gain: +5-10% mining performance"
|
|
echo ""
|
|
echo "2. Kernel Parameters:"
|
|
echo " - Current: amdgpu.gttsize=131072 (128GB)"
|
|
echo " - Recommended: amdgpu.gttsize=32768 (32GB)"
|
|
echo " - Add to /etc/default/grub: GRUB_CMDLINE_LINUX_DEFAULT=\"... amdgpu.gttsize=32768\""
|
|
echo ""
|
|
echo "3. Huge Pages:"
|
|
echo " - Current: ${NR_HUGEPAGES} total, ${HUGEPAGES_FREE} free"
|
|
echo " - Recommendation: Ensure at least 32 huge pages available for mining"
|
|
echo ""
|
|
echo "4. Expected Performance Improvement:"
|
|
echo " - Current best: 14,728.4 H/s"
|
|
echo " - With memory optimization: ~15,500-16,000 H/s (+5-8%)"
|
|
echo ""
|
|
|
|
# Check if optimization is possible
|
|
if [ "$GPU_WASTED_GB" -gt 80 ]; then
|
|
echo "⚠️ SIGNIFICANT OPTIMIZATION OPPORTUNITY DETECTED"
|
|
echo " ${GPU_WASTED_GB}GB of GPU memory is wasted!"
|
|
echo " This could be reallocated to improve CPU mining performance."
|
|
echo ""
|
|
fi
|
|
|
|
echo "To apply kernel parameter changes:"
|
|
echo "1. Edit /etc/default/grub"
|
|
echo "2. Add amdgpu.gttsize=32768 to GRUB_CMDLINE_LINUX_DEFAULT"
|
|
echo "3. Run: sudo update-grub"
|
|
echo "4. Reboot system"
|
|
echo ""
|
|
echo "Note: Test mining performance after each change to verify improvements."
|
|
|
|
|