Skip to content

Instantly share code, notes, and snippets.

@clintar
Created December 3, 2017 06:21
Show Gist options
  • Save clintar/fb50242a2e69b305eb1b6883f9f3d382 to your computer and use it in GitHub Desktop.
Save clintar/fb50242a2e69b305eb1b6883f9f3d382 to your computer and use it in GitHub Desktop.
#!/bin/bash
# AMDGPU_VERSION+="<br>"
AMDGPU_VERSION+="<span style='font-size:10px;line-height:11px;display:block;'>"
if [ $osSeries = "NV" ] ; then
if [ -x /usr/bin/nvidia-smi ] ; then
NVIDIA_SMI=`nvidia-smi --format=csv,noheader --query-gpu=name,power.draw `
NVIDIA_SMI_CLEANED=`echo "${NVIDIA_SMI}"|sed -e ':a;N;$!ba;s/\n/<br>/g'`
TOTAL_WATTS=`echo "${NVIDIA_SMI}"|awk '{sum += $5} END {print sum}'`
AMDGPU_VERSION+=${NVIDIA_SMI_CLEANED}
fi
AMDGPU_VERSION+="<br>Total: "
AMDGPU_VERSION+=`echo $TOTAL_WATTS W`
if netstat -nlp|grep \:42000 >/dev/null ; then
EWBF_EFFICIENCY=`scale=2;curl -s 'localhost:42000/getstat'| jq -r '.result[0].speed_sps / .result[0].gpu_power_usage'`
AMDGPU_VERSION+="<br>Efficiency: "
AMDGPU_VERSION+=`printf "%0.2f" ${EWBF_EFFICIENCY}`
AMDGPU_VERSION+=" Sol/W"
fi
elif [ $osSeries = "RX" ] ; then
ROCM_POWER=`/opt/rocm/bin/rocm-smi -P |sed -e 's/=//g'|sed 1,4d|head -n -3|sed -e "/\bCannot\\b/d"|sed -e "s/ \t\t: Average GPU Power: //g"`
ROCM_POWER_ADJ=""
if [ -x /root/utils/amdmeminfo/amdmeminfo ]
then
AMDGPU_VERSION+="Wattage adjusted for PCI-E draw by card type"
AMDMEMINFO=`/root/utils/amdmeminfo/amdmeminfo -q -s -o`
while read -r LINE; do
THISCARD=`echo "$LINE" |awk -F'[\\\\[\\\\]]' '{print $2}'`
while read -r MEMLINE; do
MEMNUM=`echo "$MEMLINE"|awk -F':' '{print $1}'|awk -F'GPU' '{print $2}'`
MEMNUM=$(( MEMNUM + 1 ))
if [ $THISCARD -eq $MEMNUM ]
then
CARDTYPE=`echo "$MEMLINE"|awk -F':' '{print $3}'`
if [ "$CARDTYPE" == "Radeon RX 470" ]
then
PASSED_LINE=`echo "$LINE"|awk '{print $1}'`
NEWVAL=`echo "$LINE"|awk '{print $2 + 52}'`
elif [ "$CARDTYPE" == "Radeon RX 480" ]
then
PASSED_LINE=`echo "$LINE"|awk '{print $1}'`
NEWVAL=`echo "$LINE"|awk '{print $2 + 55}'`
elif [ "$CARDTYPE" == "Radeon RX 460" ]
then
PASSED_LINE=`echo "$LINE"|awk '{print $1}'`
NEWVAL=`echo "$LINE"|awk '{print $2 + 27}'`
fi
ROCM_POWER_ADJ+=`echo "$PASSED_LINE" "$NEWVAL"`
ROCM_POWER_ADJ+=$'\n'
fi
done <<< "$AMDMEMINFO"
done <<< "$ROCM_POWER"
ROCM_POWER="$ROCM_POWER_ADJ"
else
AMDGPU_VERSION+="Wattage adjusted for PCI-E draw by card type"
LSPCIINFO=`lspci -nnv | egrep "VGA|Display" | grep '1002' | cut -d'.' -f1,3 | sed 's#=!=TScHWFaEZGZ4BqFrF=!=##g'| sed 's/:00. //g' | sed 's/Radeon //g' | sed 's/OEM //g'| sed -e 's/\[1002:....]\s*//g'| \cut -d"(" -f1`
while read -r LINE; do
THISCARD=`echo "$LINE" |awk -F'[\\\\[\\\\]]' '{print $2}'`
while read -r LSPCILINE; do
LSPCINUM=`echo "$LSPCILINE" | awk -F'[\\\\]\\\\[]' '{print $1}'`
LSPCINUM=$(( LSPCINUM + 0 ))
if [ $THISCARD -eq $LSPCINUM ]
then
LSPCITYPE=`echo "$LSPCILINE" | awk -F'[\\\\]\\\\[]' '{print $3}'|sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'`
if [ "$LSPCITYPE" == "Ellesmere" ]
then
PASSED_LINE=`echo "$LINE"|awk '{print $1}'`
NEWVAL=`echo "$LINE"|awk '{print $2 + 55}'`
elif [ "$LSPCITYPE" == "Baffin" ]
then
PASSED_LINE=`echo "$LINE"|awk '{print $1}'`
NEWVAL=`echo "$LINE"|awk '{print $2 + 27}'`
fi
ROCM_POWER_ADJ+=`echo "$PASSED_LINE" "$NEWVAL"`
ROCM_POWER_ADJ+=$'\n'
fi
done <<< "$LSPCIINFO"
done <<< "$ROCM_POWER"
ROCM_POWER="$ROCM_POWER_ADJ"
fi
ROCM_POWER_CLEANED=`echo "${ROCM_POWER}"|sort -t [ -k 2|sed -e ':a;N;$!ba;s/\n/<br>/g'`
AMDGPU_VERSION+=${ROCM_POWER_CLEANED}
TOTAL_WATTS=`echo "${ROCM_POWER}"|awk '{sum += $2;} END {print sum;}'`
AMDGPU_VERSION+="<br>Total: "
AMDGPU_VERSION+=`echo $TOTAL_WATTS W`
fi
if netstat -nlp|grep \:3333 >/dev/null ; then
CLAYMORE_LINE=`echo '{"id":0,"jsonrpc":"2.0","method":"miner_getstat1"}' | nc localhost 3333`
CLAYMORE_ETH_TOTAL=`echo "${CLAYMORE_LINE}"|jq '.result[2]'|sed -e "s/\"//g"|awk -F ";" '{print $1}'`
CLAYMORE_2ND_TOTAL=`echo "${CLAYMORE_LINE}"|jq '.result[4]'|sed -e "s/\"//g"|awk -F ";" '{print $1}'`
CLAYMORE_ETH_EFFICIENCY=`echo $CLAYMORE_ETH_TOTAL $TOTAL_WATTS | awk '{print $1 / $2}'`
CLAYMORE_2ND_EFFICIENCY=`echo $CLAYMORE_2ND_TOTAL $TOTAL_WATTS | awk '{print $1 / $2}'`
AMDGPU_VERSION+="<br>Efficiency: "
CLAYMORE_ETH_TMP+=`printf "%0.2f" ${CLAYMORE_ETH_EFFICIENCY}|awk '{ split( "kh/W mh/W gh/W" , v ); s=1; while( $1>=1000 ){ $1/=1000; s++ } print $1 }'`
AMDGPU_VERSION+=`printf "%0.2f" ${CLAYMORE_ETH_TMP}`
AMDGPU_VERSION+=" "
AMDGPU_VERSION+=`printf "%0.0f" ${CLAYMORE_ETH_EFFICIENCY}|awk '{ split( "kh/W mh/W gh/W" , v ); s=1; while( $1>=1000 ){ $1/=1000; s++ } print v[s] }'`
if [ $CLAYMORE_2ND_TOTAL -gt 0 ]; then
AMDGPU_VERSION+=" DUAL: "
CLAYMORE_2ND_TMP+=`printf "%0.2f" ${CLAYMORE_2ND_EFFICIENCY}|awk '{ split( "kh/W mh/W gh/W" , v ); s=1; while( $1>=1000 ){ $1/=1000; s++ } print $1 }'`
AMDGPU_VERSION+=`printf "%0.2f" ${CLAYMORE_2ND_TMP}`
AMDGPU_VERSION+=" "
AMDGPU_VERSION+=`printf "%0.0f" ${CLAYMORE_2ND_EFFICIENCY}|awk '{ split( "kh/W mh/W gh/W" , v ); s=1; while( $1>=1000 ){ $1/=1000; s++ } print v[s] }'`
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment