diff --git a/APSS23/project/data/bins/answer16N.bin b/APSS23/project/data/bins/answer16N.bin
new file mode 100644
index 0000000..6072930
--- /dev/null
+++ b/APSS23/project/data/bins/answer16N.bin
@@ -0,0 +1 @@
+?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÒMVAúbVÁJ]Ñ@3ìÏÀA"„ATeƒÁñ¿B_­ÂÎ½kAœ$jÁÎ½kAœ$jÁÞø`A(ì_Áry_AÞý_ÁChŸA-†žÁì…Á@ùYÁÀU ®AÐ]®Á\Â@!®ÃÀ
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer1N.bin b/APSS23/project/data/bins/answer1N.bin
index 04648c8..34163dd 100644
--- a/APSS23/project/data/bins/answer1N.bin
+++ b/APSS23/project/data/bins/answer1N.bin
@@ -1 +1 @@
-2Â+KB
\ No newline at end of file
+?VBsZÂ
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer2N.bin b/APSS23/project/data/bins/answer2N.bin
index c4afd37..63f292e 100644
--- a/APSS23/project/data/bins/answer2N.bin
+++ b/APSS23/project/data/bins/answer2N.bin
@@ -1 +1 @@
-2Â+KBiÃ•Á.<–A
\ No newline at end of file
+?VBsZÂUf–AÊ²–Á
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer32N.bin b/APSS23/project/data/bins/answer32N.bin
new file mode 100644
index 0000000..4036461
--- /dev/null
+++ b/APSS23/project/data/bins/answer32N.bin
@@ -0,0 +1,2 @@
+?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÒMVAúbVÁJ]Ñ@3ìÏÀA"„ATeƒÁñ¿B_­ÂÎ½kAœ$jÁÎ½kAœ$jÁÞø`A(ì_Áry_AÞý_ÁChŸA-†žÁì…Á@ùYÁÀU ®AÐ]®Á\Â@!®ÃÀŒ/Aõ'-Áä¥<AÁÚ:Á‰ÂÁFVÃAa8¤Á	È£A
+ùÁ@qÖ¾À—š°Á¿f°AÔ•DAÌ¢EÁVHÁŽHAìþÀØýü@w†ÁœÝ†A)8ƒÁ‹â‚AÈòÁÍ”òA¡¨ÁÕj¨A5 ÁµËA™MJÁ”{JA€ÚÁ'+ÚA
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer4N.bin b/APSS23/project/data/bins/answer4N.bin
index b2016d0..3f86e65 100644
--- a/APSS23/project/data/bins/answer4N.bin
+++ b/APSS23/project/data/bins/answer4N.bin
@@ -1 +1 @@
-2Â+KBiÃ•Á.<–AŒ/Aï'-ÁV!*Áè*A
\ No newline at end of file
+?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁ
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer64N.bin b/APSS23/project/data/bins/answer64N.bin
new file mode 100644
index 0000000..c3dc4ba
--- /dev/null
+++ b/APSS23/project/data/bins/answer64N.bin
@@ -0,0 +1,2 @@
+?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÒMVAúbVÁJ]Ñ@3ìÏÀA"„ATeƒÁñ¿B_­ÂÎ½kAœ$jÁÎ½kAœ$jÁÞø`A(ì_Áry_AÞý_ÁChŸA-†žÁì…Á@ùYÁÀU ®AÐ]®Á\Â@!®ÃÀŒ/Aõ'-Áä¥<AÁÚ:Á‰ÂÁFVÃAa8¤Á	È£A
+ùÁ@qÖ¾À—š°Á¿f°AÔ•DAÌ¢EÁVHÁŽHAìþÀØýü@w†ÁœÝ†A)8ƒÁ‹â‚AÈòÁÍ”òA¡¨ÁÕj¨A5 ÁµËA™MJÁ”{JA€ÚÁ'+ÚA¨&ŽÁÁz�AgŽfÁÖUfA€ÚÁ'+ÚAÑàŠÁr2‹A?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÎ½kAœ$jÁÎ½kAœ$jÁÞø`A(ì_Áry_AÞý_ÁChŸA-†žÁì…Á@ùYÁÀU ®AÐ]®Á\Â@!®ÃÀ?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÒMVAúbVÁJ]Ñ@3ìÏÀA"„ATeƒÁñ¿B_­ÂÎ½kAœ$jÁÎ½kAœ$jÁÞø`A(ì_Áry_AÞý_ÁChŸA-†žÁì…Á@ùYÁÀU ®AÐ]®Á\Â@!®ÃÀ
\ No newline at end of file
diff --git a/APSS23/project/data/bins/answer8N.bin b/APSS23/project/data/bins/answer8N.bin
index 200e2f2..b7df56e 100644
--- a/APSS23/project/data/bins/answer8N.bin
+++ b/APSS23/project/data/bins/answer8N.bin
@@ -1 +1 @@
-2Â+KBiÃ•Á.<–AŒ/Aï'-ÁV!*Áè*Aö8ÃÁÈºÃABVBqZÂã³ÍÁCÔÍA¥±®Ár®A
\ No newline at end of file
+?VBsZÂUf–AÊ²–Ág1AñÈÁˆAKcÁÒMVAúbVÁJ]Ñ@3ìÏÀA"„ATeƒÁñ¿B_­Â
\ No newline at end of file
diff --git a/APSS23/project/data/bins/input16N.bin b/APSS23/project/data/bins/input16N.bin
new file mode 100644
index 0000000..66b1527
Binary files /dev/null and b/APSS23/project/data/bins/input16N.bin differ
diff --git a/APSS23/project/data/bins/input1N.bin b/APSS23/project/data/bins/input1N.bin
index dafbfd9..dadf816 100644
Binary files a/APSS23/project/data/bins/input1N.bin and b/APSS23/project/data/bins/input1N.bin differ
diff --git a/APSS23/project/data/bins/input2N.bin b/APSS23/project/data/bins/input2N.bin
index cbe90d4..e042d79 100644
Binary files a/APSS23/project/data/bins/input2N.bin and b/APSS23/project/data/bins/input2N.bin differ
diff --git a/APSS23/project/data/bins/input32N.bin b/APSS23/project/data/bins/input32N.bin
new file mode 100644
index 0000000..5432fc7
Binary files /dev/null and b/APSS23/project/data/bins/input32N.bin differ
diff --git a/APSS23/project/data/bins/input4N.bin b/APSS23/project/data/bins/input4N.bin
index dc2122b..cb53152 100644
Binary files a/APSS23/project/data/bins/input4N.bin and b/APSS23/project/data/bins/input4N.bin differ
diff --git a/APSS23/project/data/bins/input64N.bin b/APSS23/project/data/bins/input64N.bin
new file mode 100644
index 0000000..f6c51bd
Binary files /dev/null and b/APSS23/project/data/bins/input64N.bin differ
diff --git a/APSS23/project/data/bins/input8N.bin b/APSS23/project/data/bins/input8N.bin
index b468f41..87eeb97 100644
Binary files a/APSS23/project/data/bins/input8N.bin and b/APSS23/project/data/bins/input8N.bin differ
diff --git a/APSS23/project/data/bins/output1N.bin b/APSS23/project/data/bins/output1N.bin
deleted file mode 100644
index d52525a..0000000
--- a/APSS23/project/data/bins/output1N.bin
+++ /dev/null
@@ -1 +0,0 @@
-gÂ¦KB
\ No newline at end of file
diff --git a/APSS23/project/data/bins/output2N.bin b/APSS23/project/data/bins/output2N.bin
deleted file mode 100644
index 1d42c69..0000000
--- a/APSS23/project/data/bins/output2N.bin
+++ /dev/null
@@ -1 +0,0 @@
-gÂ¦KBüÃ•Áä<–A
\ No newline at end of file
diff --git a/APSS23/project/data/bins/output4N.bin b/APSS23/project/data/bins/output4N.bin
deleted file mode 100644
index 2b6b659..0000000
Binary files a/APSS23/project/data/bins/output4N.bin and /dev/null differ
diff --git a/APSS23/project/data/bins/output8N.bin b/APSS23/project/data/bins/output8N.bin
deleted file mode 100644
index 02085f6..0000000
Binary files a/APSS23/project/data/bins/output8N.bin and /dev/null differ
diff --git a/APSS23/project/main.cpp b/APSS23/project/main.cpp
index 6b6d337..91a6f34 100644
--- a/APSS23/project/main.cpp
+++ b/APSS23/project/main.cpp
@@ -1,7 +1,14 @@
+/*
+ * main.cpp Ver 3.0
+ * */
+
+
 #include <cstdio>
 #include <cstdlib>
 #include <string>
 #include <vector>
+#include <cuda_runtime.h>
+#include <math.h>
 
 #include "model.h"
 #include "util.h"
@@ -11,7 +18,7 @@ int S, W, V;
 
 char parameter_fname[100] = "./data/weights.bin";
 char input_fname[100] = "./data/bins/input1N.bin";
-char answer_fname[100] = "./data/bins/output1N.bin";
+char answer_fname[100] = "./data/bins/answer1N.bin";
 char output_fname[100] = "./output.bin";
 
 int main(int argc, char **argv) {
@@ -35,7 +42,7 @@ int main(int argc, char **argv) {
   N = sz >> 16;
 
   // Define output Tensor
-  output = (float *)malloc(sizeof(float) * N * 2);
+  cudaMallocHost((void**)&output,sizeof(float) * N * 2);
 
   // Initalize model
   initialize_model(parameter_fname);
@@ -58,10 +65,22 @@ int main(int argc, char **argv) {
   double st = 0.0, et = 0.0;
   fprintf(stderr, " Start...");
 
+  for (int dev = 0 ; dev < 4 ; ++dev) { 
+    cudaSetDevice(dev);
+    cudaDeviceSynchronize();
+  } 
+  cudaSetDevice(0);
+  
   st = get_time();
 
   model_forward(input, output);
-
+  
+  for (int dev = 0 ; dev < 4 ; ++dev) { 
+    cudaSetDevice(dev);
+    cudaDeviceSynchronize();
+  }
+  cudaSetDevice(0);
+  
   et = get_time();
   fprintf(stderr, "  DONE!\n");
   fprintf(stderr, " ---------------------------------------------\n");
@@ -85,7 +104,7 @@ int main(int argc, char **argv) {
 
     int diff = -1;
     for (int i = 0; i < N * 2; i++) {
-      if (abs(*(output + i) - *(answer + i)) > 1e-3) {
+      if (fabs(*(output + i) - *(answer + i)) > fabs(*(answer + i)) * 1e-4 * 3) {
         diff = i;
         break;
       }
diff --git a/APSS23/project/model.cu b/APSS23/project/model.cu
index 56b04d4..352d50a 100644
--- a/APSS23/project/model.cu
+++ b/APSS23/project/model.cu
@@ -93,7 +93,7 @@ void initialize_model(const char *parameter_fname) {
 // Size of in  = N * C_IN * H_IN * W_IN
 // Size of out = N * C_OUT * (H_IN-K+1) * (W_IN-K+1)
 // Weight : C_OUT * C_IN * K * K
-// Bias :
+// Bias : C_OUT
 
 static void conv2d(Tensor *in_t, Tensor *out_t, Tensor *weight_t,
                    Tensor *bias_t);
diff --git a/APSS23/project/util.cpp b/APSS23/project/util.cpp
index ea8b02a..c9ef172 100644
--- a/APSS23/project/util.cpp
+++ b/APSS23/project/util.cpp
@@ -5,6 +5,8 @@
 #include <map>
 #include <unistd.h>
 #include <vector>
+#include <cuda_runtime.h>
+
 
 using namespace std;
 
@@ -67,7 +69,9 @@ void *read_binary(const char *filename, size_t *size) {
   fseek(f, 0, SEEK_END);
   size_ = ftell(f);
   rewind(f);
-  void *buf = malloc(size_);
+  float* buf;
+  
+  cudaMallocHost((void**)&buf, size_);
   size_t ret = fread(buf, 1, size_, f);
   if (ret == 0) {
     fprintf(stderr, "[ERROR] Cannot read file \'%s\'\n", filename);
