Files
scripts/MINE/xmr/analyze_memory.sh
Dobromir Popov 41434ddc3a mining, cleanup
2025-09-01 14:34:36 +03:00

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."