Browse Source

Bug fixes in run_dataset.py - automated energy measuring - Added nano

hmar 4 years ago
parent
commit
b9ea406585

+ 35 - 0
real-life-dataset/run_dataset/get-power-nano.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+
+
+rm module-power-input.txt
+rm GPU-power.txt
+rm CPU-power.txt
+#rm main-carrier-board-power-input.txt
+#rm main-carrier-board-5V-supply.txt
+#rm main-carrier-board-3.3V-supply.txt
+#rm carrier-board-3.3V-sleep-supply.txt
+#rm main-carrier-board-1.8V-supply.txt
+#rm 3.3V-supply-for-M.2-key-E-connector.txt
+rm prof_time.txt
+
+
+while true; do
+	start=$(($(date +%s%N)/1000000))
+
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power0_input >> module-power-input.txt
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power1_input >> GPU-power.txt
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power2_input >> CPU-power.txt
+
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power0_input >> main-carrier-board-power-input.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power1_input >> main-carrier-board-5V-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power2_input >> main-carrier-board-3.3V-supply.txt
+
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power0_input >> carrier-board-3.3V-sleep-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power1_input >> main-carrier-board-1.8V-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power2_input >> 3.3V-supply-for-M.2-key-E-connector.txt
+
+	end=$(($(date +%s%N)/1000000))
+	echo $((end-start)) >> prof_time.txt
+
+ #sleep 0.001s
+done

+ 10 - 6
real-life-dataset/run_dataset/run_dataset.py

@@ -13,7 +13,7 @@
 import sys
 import sys
 import os
 import os
 from application import application
 from application import application
-
+from energy_parser import *
 import signal
 import signal
 import subprocess
 import subprocess
 
 
@@ -22,8 +22,8 @@ from transformer import transformer
 import ConfigParser
 import ConfigParser
 from application.code_block import Code_block
 from application.code_block import Code_block
 
 
-if (len(sys.argv) < 2):
-	print "Usage: python run_dataset.py <hotspot_name>"
+if (len(sys.argv) < 3):
+	print "Usage: python run_dataset.py <hotspot_name> <energy|time>"
 	exit()
 	exit()
 
 
 #os.system("rm ./temp/*")
 #os.system("rm ./temp/*")
@@ -42,16 +42,20 @@ print "=========================================================================
 stmts = [Code_block("../"+configParser.get(sys.argv[1], 'source'), " ", configParser.get(sys.argv[1], 'line_start'), configParser.get(sys.argv[1], 'line_end'))]
 stmts = [Code_block("../"+configParser.get(sys.argv[1], 'source'), " ", configParser.get(sys.argv[1], 'line_start'), configParser.get(sys.argv[1], 'line_end'))]
 
 
 #insert code to measure execution time or energy
 #insert code to measure execution time or energy
-#set energy for collecting energy on Nvidia Tegra TX1
-transformed_hotspot = transformer.Transformer(stmts[0], "time")
+transformed_hotspot = transformer.Transformer(stmts[0], sys.argv[2])
 transformed_hotspot.prepare([],[])
 transformed_hotspot.prepare([],[])
 
 
 #re-build program
 #re-build program
 os.system("cd ../ && "+configParser.get(sys.argv[1], 'build'))
 os.system("cd ../ && "+configParser.get(sys.argv[1], 'build'))
 
 
+if sys.argv[2]=="energy":
+    pro = subprocess.Popen("./get-power.sh")
 #execute program
 #execute program
 os.system("cd ../ && "+configParser.get(sys.argv[1], 'exec'))
 os.system("cd ../ && "+configParser.get(sys.argv[1], 'exec'))
 
 
+if sys.argv[2]=="energy":
+    pro.kill()
 #restore source file
 #restore source file
 transformed_hotspot.restore()
 transformed_hotspot.restore()
-
+if sys.argv[2]=="energy":
+    energy_results()

+ 35 - 0
synthetic-dataset/measure_energy_tegra/get-power-nano.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+
+
+rm module-power-input.txt
+rm GPU-power.txt
+rm CPU-power.txt
+#rm main-carrier-board-power-input.txt
+#rm main-carrier-board-5V-supply.txt
+#rm main-carrier-board-3.3V-supply.txt
+#rm carrier-board-3.3V-sleep-supply.txt
+#rm main-carrier-board-1.8V-supply.txt
+#rm 3.3V-supply-for-M.2-key-E-connector.txt
+rm prof_time.txt
+
+
+while true; do
+	start=$(($(date +%s%N)/1000000))
+
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power0_input >> module-power-input.txt
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power1_input >> GPU-power.txt
+  cat /sys/bus/i2c/devices/6-0040/iio_device/in_power2_input >> CPU-power.txt
+
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power0_input >> main-carrier-board-power-input.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power1_input >> main-carrier-board-5V-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0042/iio_device/in_power2_input >> main-carrier-board-3.3V-supply.txt
+
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power0_input >> carrier-board-3.3V-sleep-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power1_input >> main-carrier-board-1.8V-supply.txt
+#  cat /sys/bus/platform/devices/7000c400.i2c/i2c-1/1-0043/iio_device/in_power2_input >> 3.3V-supply-for-M.2-key-E-connector.txt
+
+	end=$(($(date +%s%N)/1000000))
+	echo $((end-start)) >> prof_time.txt
+
+ #sleep 0.001s
+done