diff --git a/llvm/projects/hpvm-tensor-rt/bin/get_power_stats.py b/llvm/projects/hpvm-tensor-rt/bin/get_power_stats.py
new file mode 100644
index 0000000000000000000000000000000000000000..e81cf10ece72c43457de718365bd2017e1684ab2
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/bin/get_power_stats.py
@@ -0,0 +1,79 @@
+
+import sys
+import numpy as np
+import subprocess
+
+
+def get_avg_power(f_name):
+    
+    f = open(f_name, "r")
+    
+    gpu_power = []
+    ddr_power = []
+    sys_power = []
+    
+    for x in f:
+        toks = x.split()
+
+        gpu_power.append(float(toks[1]))
+        ddr_power.append(float(toks[2]))
+        sys_power.append(float(toks[3]))
+
+
+    avg_gpu_power = np.mean(gpu_power)
+    avg_ddr_power = np.mean(ddr_power)
+    avg_sys_power = np.mean(sys_power)
+
+    print ("** avg_gpu_power = ", avg_gpu_power, " avg_ddr_power = ", \
+           avg_ddr_power, " avg_sys_power = ", avg_sys_power)
+
+    return (avg_gpu_power, avg_ddr_power, avg_sys_power)
+
+
+#avail_frequencies = [140250000, 229500000, 318750000, 408000000, 497250000,
+#                     586500000, 675750000, 765000000, 854250000,       
+#                     943500000, 1032750000, 1122000000, 1211250000, 1300500000];
+
+
+avail_frequencies = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
+
+
+if __name__ == "__main__":
+
+
+  programs = ["alexnet_promise", "alexnet2_promise", "vgg16_cifar10_promise", "resnet18_promise", "resnet50_imagenet_promise", "mobilenet_promise", "vgg16_imagenet_promise"]
+  
+  for binary_path in programs:
+    
+    power_avgs = []
+    power_freq_file = "power_data/" + binary_path + "/power_vals.txt"
+    fout = open(power_freq_file, "w+")
+    
+    for frequency in avail_frequencies:
+
+      print (frequency)
+      poll_path = "./poll"
+      iterations = 10
+
+      poll_cmd = poll_path + " " + str(frequency) # sudo needed for frequency change
+      subprocess.call(poll_cmd, shell=True)
+
+      
+      binary_path = "./" + binary_path
+      power_file = " power_data/" + binary_path  +  "/power.out." + str(frequency)
+      profile_cmd = "../../system_profiler/build/offline_profiler " + binary_path + " " + \
+                    str(iterations) + " tensor.out." + str(frequency) + power_file
+      
+      subprocess.call(profile_cmd, shell=True)
+    
+    
+      #avg_power = get_avg_power("power.out." + str(frequency))
+      avg_power = get_avg_power(power_file)
+      power_avgs.append(avg_power)
+      
+      fout.write(str(avg_power[0]) + " " + str(avg_power[1]) + " " +  str(avg_power[2]) + "\n")      
+      print (avg_power)
+      
+
+    print (power_avgs)
+    fout.close()