#!/bin/bash

NVIDIA_SMI=$(which nvidia-smi)

if [ $? -eq 0 ]; then
	echo '<<<gpu_util>>>'
	OUT=$($NVIDIA_SMI -x -q 2>/dev/null | egrep "(gpu_util|minor_number)")
	
	MINOR_NUMBER=-1
	UTILIZATION=-1
	while IFS= read -r LINE; do
		TMP=$(echo $LINE | sed -E 's/\s*<minor_number>([0-9]+)<\/minor_number>\s*/\1/' 2>/dev/null)
		if [[ "$TMP" =~ ^[0-9]*$ ]] ; then 
			MINOR_NUMBER=$TMP
		fi

		TMP=$(echo $LINE | sed -E 's/\s*<gpu_util>([0-9]+)\s*%<\/gpu_util>\s*/\1/' 2>/dev/null)
		if [[ "$TMP" =~ ^[0-9]+\.*[0-9]*$ ]] ; then 
			UTILIZATION=$TMP
		fi

		if [ "$MINOR_NUMBER" -ge 0 ] && [ "$UTILIZATION" -ge 0 ]; then
			echo "gpu_id $MINOR_NUMBER $UTILIZATION %"
			MINOR_NUMBER=-1
			UTILIZATION=-1
		fi

	done <<< "$OUT"
fi
