diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_loop.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_loop.cpp
index 9ca1c627334fa3005c602ee96df63adbca8c969d..556f499a81f5516b2161c3cbc010f54d62c01c99 100644
--- a/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_loop.cpp
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/resnet18/src/resnet18_loop.cpp
@@ -13,6 +13,8 @@
 void var_0_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(1); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -21,6 +23,8 @@ void var_0_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_1_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(2); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -29,6 +33,8 @@ void var_1_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_2_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(3); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -37,6 +43,8 @@ void var_2_node(void* t1, size_t bytes_t1) {
 void var_3_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(4); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -45,6 +53,8 @@ void var_3_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_4_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(5); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -53,6 +63,8 @@ void var_4_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_5_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(6); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -61,6 +73,8 @@ void var_5_node(void* t1, size_t bytes_t1) {
 void var_6_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(7); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -69,6 +83,8 @@ void var_6_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_7_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(8); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -77,6 +93,8 @@ void var_7_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_8_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(9); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -85,6 +103,8 @@ void var_8_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_9_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(10); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -93,6 +113,8 @@ void var_9_node(void* t1, size_t bytes_t1) {
 void var_10_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(11); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -101,6 +123,8 @@ void var_10_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_11_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(12); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -109,6 +133,8 @@ void var_11_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_12_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(13); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -117,6 +143,8 @@ void var_12_node(void* t1, size_t bytes_t1) {
 void var_13_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(14); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -125,6 +153,8 @@ void var_13_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_14_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(15); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -133,6 +163,8 @@ void var_14_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_15_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(16); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -141,6 +173,8 @@ void var_15_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_16_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(17); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -149,6 +183,8 @@ void var_16_node(void* t1, size_t bytes_t1) {
 void var_17_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(18); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -157,6 +193,8 @@ void var_17_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_18_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(19); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -165,6 +203,8 @@ void var_18_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_19_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(20); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -173,6 +213,8 @@ void var_19_node(void* t1, size_t bytes_t1) {
 void var_20_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(21); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -181,6 +223,8 @@ void var_20_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_21_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(22); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -189,6 +233,8 @@ void var_21_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_22_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(23); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -197,6 +243,8 @@ void var_22_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_23_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(24); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -205,6 +253,8 @@ void var_23_node(void* t1, size_t bytes_t1) {
 void var_24_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(25); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 2, 2); 
   __visc__return(2, r, (size_t) 0); 
@@ -213,6 +263,8 @@ void var_24_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_25_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(26); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -221,6 +273,8 @@ void var_25_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_26_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(27); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -229,6 +283,8 @@ void var_26_node(void* t1, size_t bytes_t1) {
 void var_27_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(28); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -237,6 +293,8 @@ void var_27_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_28_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(29); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -245,6 +303,8 @@ void var_28_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_29_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(30); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 0, 0, 2, 2); 
   __visc__return(2, r, (size_t) 0); 
@@ -253,6 +313,8 @@ void var_29_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_30_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(31); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -261,6 +323,8 @@ void var_30_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_31_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(32); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -269,6 +333,8 @@ void var_31_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_32_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(33); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -277,6 +343,8 @@ void var_32_node(void* t1, size_t bytes_t1) {
 void var_33_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(34); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -285,6 +353,8 @@ void var_33_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_34_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(35); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -293,6 +363,8 @@ void var_34_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_35_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(36); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -301,6 +373,8 @@ void var_35_node(void* t1, size_t bytes_t1) {
 void var_36_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(37); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -309,6 +383,8 @@ void var_36_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_37_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(38); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -317,6 +393,8 @@ void var_37_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_38_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(39); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -325,6 +403,8 @@ void var_38_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_39_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(40); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -333,6 +413,8 @@ void var_39_node(void* t1, size_t bytes_t1) {
 void var_40_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(41); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -341,6 +423,8 @@ void var_40_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_41_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(42); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -349,6 +433,8 @@ void var_41_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_42_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(43); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -357,6 +443,8 @@ void var_42_node(void* t1, size_t bytes_t1) {
 void var_43_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(44); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -365,6 +453,8 @@ void var_43_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_44_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(45); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -373,6 +463,8 @@ void var_44_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_45_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(46); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -381,6 +473,8 @@ void var_45_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_46_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(47); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -389,6 +483,8 @@ void var_46_node(void* t1, size_t bytes_t1) {
 void var_47_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(48); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 2, 2); 
   __visc__return(2, r, (size_t) 0); 
@@ -397,6 +493,8 @@ void var_47_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_48_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(49); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -405,6 +503,8 @@ void var_48_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_49_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(50); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -413,6 +513,8 @@ void var_49_node(void* t1, size_t bytes_t1) {
 void var_50_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(51); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -421,6 +523,8 @@ void var_50_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_51_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(52); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -429,6 +533,8 @@ void var_51_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_52_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(53); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 0, 0, 2, 2); 
   __visc__return(2, r, (size_t) 0); 
@@ -437,6 +543,8 @@ void var_52_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_53_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(54); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -445,6 +553,8 @@ void var_53_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_54_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(55); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -453,6 +563,8 @@ void var_54_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_55_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(56); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -461,6 +573,8 @@ void var_55_node(void* t1, size_t bytes_t1) {
 void var_56_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(57); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -469,6 +583,8 @@ void var_56_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_57_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(58); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -477,6 +593,8 @@ void var_57_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_58_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(59); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -485,6 +603,8 @@ void var_58_node(void* t1, size_t bytes_t1) {
 void var_59_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(60); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -493,6 +613,8 @@ void var_59_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_60_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(61); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -501,6 +623,8 @@ void var_60_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_61_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(62); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -509,6 +633,8 @@ void var_61_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_62_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(63); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -517,6 +643,8 @@ void var_62_node(void* t1, size_t bytes_t1) {
 void var_63_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(64); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -525,6 +653,8 @@ void var_63_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_64_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(65); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -533,6 +663,8 @@ void var_64_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_65_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(66); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -541,6 +673,8 @@ void var_65_node(void* t1, size_t bytes_t1) {
 void var_66_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(67); 
+ 
 
   void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
   __visc__return(2, r, (size_t) 0); 
@@ -549,6 +683,8 @@ void var_66_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_67_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(68); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -557,6 +693,8 @@ void var_67_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_68_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(69); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -565,6 +703,8 @@ void var_68_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_69_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(70); 
+ 
 
   void* r = __visc__tensor_relu(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -573,6 +713,8 @@ void var_69_node(void* t1, size_t bytes_t1) {
 void var_70_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(71); 
+ 
 
   void* r = __visc__tensor_pool_mean(t1, 8, 8, 0, 0, 8, 8); 
   __visc__return(2, r, (size_t) 0); 
@@ -581,6 +723,8 @@ void var_70_node(void* t1, size_t bytes_t1) {
 void var_71_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(72); 
+ 
 
   void *r = __visc__tensor_mul(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -589,6 +733,8 @@ void var_71_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_72_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
   __visc__hint(visc::PROMISE_TARGET); 
   __visc__attributes(2, t1, t2, 0); 
+  __visc__node_id(73); 
+ 
 
   void *r = __visc__tensor_add(t1, t2); 
   __visc__return(2, r, (size_t) 0); 
@@ -597,6 +743,8 @@ void var_72_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) {
 void var_73_node(void* t1, size_t bytes_t1) { 
   __visc__hint(visc::CUDNN_TARGET); 
   __visc__attributes(1, t1, 0); 
+  __visc__node_id(74); 
+ 
 
   void* r = __visc__tensor_softmax(t1); 
   __visc__return(2, r, (size_t) 0); 
@@ -652,6 +800,7 @@ void root(void* input, size_t input_bytes,
   __visc__hint(visc::CPU_TARGET); 
   __visc__attributes(45, input, conv2d_1_w, conv2d_1_b, conv2d_2_w, conv2d_2_b, conv2d_3_w, conv2d_3_b, conv2d_4_w, conv2d_4_b, conv2d_5_w, conv2d_5_b, conv2d_6_w, conv2d_6_b, conv2d_7_w, conv2d_7_b, conv2d_8_w, conv2d_8_b, conv2d_10_w, conv2d_10_b, conv2d_9_w, conv2d_9_b, conv2d_11_w, conv2d_11_b, conv2d_12_w, conv2d_12_b, conv2d_13_w, conv2d_13_b, conv2d_14_w, conv2d_14_b, conv2d_15_w, conv2d_15_b, conv2d_17_w, conv2d_17_b, conv2d_16_w, conv2d_16_b, conv2d_18_w, conv2d_18_b, conv2d_19_w, conv2d_19_b, conv2d_20_w, conv2d_20_b, conv2d_21_w, conv2d_21_b, dense_1_w, dense_1_b, 0); 
 
+  
 
   void* var_0 = __visc__createNodeND(0, var_0_node); 
 
@@ -1436,7 +1585,7 @@ int main(){
   startMemTracking();
   startProfiling();
 
-  for (int j = 0; j < 14; j++){
+  for (int j = 0; j < 1; j++){
     for (int i = 0; i < batch_count; i++){
   
       int start = i * batch_size;