mirror of
				https://github.com/exo-explore/exo.git
				synced 2025-10-23 02:57:14 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| set -e
 | |
| 
 | |
| # Function to log with timestamp
 | |
| log() {
 | |
|   echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
 | |
| }
 | |
| 
 | |
| log "Applying comprehensive performance optimizations..."
 | |
| 
 | |
| # System-wide power management
 | |
| log "Configuring power management..."
 | |
| sudo pmset -a lessbright 0
 | |
| sudo pmset -a disablesleep 1
 | |
| sudo pmset -a sleep 0
 | |
| sudo pmset -a hibernatemode 0
 | |
| sudo pmset -a autopoweroff 0
 | |
| sudo pmset -a standby 0
 | |
| sudo pmset -a powernap 0
 | |
| sudo pmset -a proximitywake 0
 | |
| sudo pmset -a tcpkeepalive 1
 | |
| sudo pmset -a powermode 2
 | |
| sudo pmset -a gpuswitch 2
 | |
| sudo pmset -a displaysleep 0
 | |
| sudo pmset -a disksleep 0
 | |
| 
 | |
| # Memory and kernel optimizations
 | |
| log "Configuring memory and kernel settings..."
 | |
| sudo sysctl -w kern.memorystatus_purge_on_warning=0
 | |
| sudo sysctl -w kern.memorystatus_purge_on_critical=0
 | |
| sudo sysctl -w kern.timer.coalescing_enabled=0
 | |
| 
 | |
| # Metal and GPU optimizations
 | |
| log "Configuring Metal and GPU settings..."
 | |
| defaults write com.apple.CoreML MPSEnableGPUValidation -bool false
 | |
| defaults write com.apple.CoreML MPSEnableMetalValidation -bool false
 | |
| defaults write com.apple.CoreML MPSEnableGPUDebug -bool false
 | |
| defaults write com.apple.Metal GPUDebug -bool false
 | |
| defaults write com.apple.Metal GPUValidation -bool false
 | |
| defaults write com.apple.Metal MetalValidation -bool false
 | |
| defaults write com.apple.Metal MetalCaptureEnabled -bool false
 | |
| defaults write com.apple.Metal MTLValidationBehavior -string "Disabled"
 | |
| defaults write com.apple.Metal EnableMTLDebugLayer -bool false
 | |
| defaults write com.apple.Metal MTLDebugLevel -int 0
 | |
| defaults write com.apple.Metal PreferIntegratedGPU -bool false
 | |
| defaults write com.apple.Metal ForceMaximumPerformance -bool true
 | |
| defaults write com.apple.Metal MTLPreferredDeviceGPUFrame -bool true
 | |
| 
 | |
| # Create MPS cache directory with proper permissions
 | |
| sudo mkdir -p /tmp/mps_cache
 | |
| sudo chmod 777 /tmp/mps_cache
 | |
| 
 | |
| # Process and resource limits
 | |
| log "Configuring process limits..."
 | |
| sudo launchctl limit maxfiles 524288 524288
 | |
| ulimit -n 524288 || log "Warning: Could not set file descriptor limit"
 | |
| ulimit -c 0
 | |
| ulimit -l unlimited || log "Warning: Could not set memory lock limit"
 | |
| 
 | |
| # Export performance-related environment variables
 | |
| cat << 'EOF' > /tmp/performance_env.sh
 | |
| # Metal optimizations
 | |
| export MTL_DEBUG_LAYER=0
 | |
| export METAL_DEVICE_WRAPPER_TYPE=1
 | |
| export METAL_DEBUG_ERROR_MODE=0
 | |
| export METAL_FORCE_PERFORMANCE_MODE=1
 | |
| export METAL_DEVICE_PRIORITY=high
 | |
| export METAL_MAX_COMMAND_QUEUES=1024
 | |
| export METAL_LOAD_LIMIT=0
 | |
| export METAL_VALIDATION_ENABLED=0
 | |
| export METAL_ENABLE_VALIDATION_LAYER=0
 | |
| export OBJC_DEBUG_MISSING_POOLS=NO
 | |
| export MPS_CACHEDIR=/tmp/mps_cache
 | |
| 
 | |
| # MLX optimizations
 | |
| export MLX_USE_GPU=1
 | |
| export MLX_METAL_COMPILE_ASYNC=1
 | |
| export MLX_METAL_PREALLOCATE=1
 | |
| export MLX_METAL_MEMORY_GUARD=0
 | |
| export MLX_METAL_CACHE_KERNELS=1
 | |
| export MLX_PLACEMENT_POLICY=metal
 | |
| export MLX_METAL_VALIDATION=0
 | |
| export MLX_METAL_DEBUG=0
 | |
| export MLX_FORCE_P_CORES=1
 | |
| export MLX_METAL_MEMORY_BUDGET=0
 | |
| export MLX_METAL_PREWARM=1
 | |
| 
 | |
| # Python optimizations
 | |
| export PYTHONUNBUFFERED=1
 | |
| export PYTHONOPTIMIZE=2
 | |
| export PYTHONHASHSEED=0
 | |
| export PYTHONDONTWRITEBYTECODE=1
 | |
| EOF
 | |
| 
 | |
| log "Performance optimizations completed. Environment variables written to /tmp/performance_env.sh" | 
