@@ -61,9 +61,9 @@ int main(int argc, char* argv[]) {
6161 exit (EXIT_FAILURE);
6262 }
6363
64- double concurrent_max[ 2 ] = { 0 } ;
65- double read_max[ 2 ] = { 0 } ;
66- double write_max[ 2 ] = { 0 } ;
64+ double concurrent_max = 0 ;
65+ double read_max = 0 ;
66+ double write_max = 0 ;
6767
6868 for (size_t i = 4 * 1024 ; i <= 256 * 1024 * 1024 ; i *= 2 ) {
6969 size_t iter = 1024 ;
@@ -74,8 +74,6 @@ int main(int argc, char* argv[]) {
7474 if (bufsize > 8 * 1024 ) break ;
7575 }
7676
77- cl_ulong num_blocks = bufsize / 64 ;
78-
7977 /* Input buffer */
8078 unsigned char * input_host = ((unsigned char *)malloc (bufsize));
8179 if (input_host == NULL ) {
@@ -107,11 +105,11 @@ int main(int argc, char* argv[]) {
107105
108106 OCL_CHECK (err, err = krnl.setArg (0 , *(buffer[0 ])));
109107 OCL_CHECK (err, err = krnl.setArg (1 , *(buffer[1 ])));
110- OCL_CHECK (err, err = krnl.setArg (2 , num_blocks ));
108+ OCL_CHECK (err, err = krnl.setArg (2 , bufsize ));
111109 OCL_CHECK (err, err = krnl.setArg (3 , iter));
112110
113111 double dbytes = bufsize;
114- double dmbytes = dbytes / ((( double ) 1024 ) * (( double ) 1024 ) );
112+ std::string size_str = xcl::convert_size (bufsize );
115113
116114 /* Write input buffer */
117115 /* Map input buffer for PCIe write */
@@ -160,16 +158,15 @@ int main(int argc, char* argv[]) {
160158 double bpersec = (dbytes / dsduration);
161159 double gbpersec = (2 * bpersec) / ((double )1024 * 1024 * 1024 ); // For Concurrent Read and Write
162160
163- std::cout << " Concurrent Read and Write Throughput = " << gbpersec << " (GB/sec) for buffer size " << dmbytes
164- << " MB \n " ;
161+ std::cout << " Concurrent Read and Write Throughput = " << gbpersec << " (GB/sec) for buffer size " << size_str
162+ << std::endl ;
165163
166- if (gbpersec > concurrent_max[0 ]) {
167- concurrent_max[0 ] = gbpersec;
168- concurrent_max[1 ] = dmbytes;
164+ if (gbpersec > concurrent_max) {
165+ concurrent_max = gbpersec;
169166 }
170167
171168 OCL_CHECK (err, err = krnl_read.setArg (0 , *(buffer[0 ])));
172- OCL_CHECK (err, err = krnl_read.setArg (1 , num_blocks ));
169+ OCL_CHECK (err, err = krnl_read.setArg (1 , bufsize ));
173170 OCL_CHECK (err, err = krnl_read.setArg (2 , iter));
174171
175172 /* Execute Kernel */
@@ -186,15 +183,14 @@ int main(int argc, char* argv[]) {
186183 bpersec = (dbytes / dsduration);
187184 gbpersec = bpersec / ((double )1024 * 1024 * 1024 );
188185
189- std::cout << " Read Throughput = " << gbpersec << " (GB/sec) for buffer size " << dmbytes << " MB \n " ;
186+ std::cout << " Read Throughput = " << gbpersec << " (GB/sec) for buffer size " << size_str << std::endl ;
190187
191- if (gbpersec > read_max[0 ]) {
192- read_max[0 ] = gbpersec;
193- read_max[1 ] = dmbytes;
188+ if (gbpersec > read_max) {
189+ read_max = gbpersec;
194190 }
195191
196192 OCL_CHECK (err, err = krnl_write.setArg (0 , *(buffer[1 ])));
197- OCL_CHECK (err, err = krnl_write.setArg (1 , num_blocks ));
193+ OCL_CHECK (err, err = krnl_write.setArg (1 , bufsize ));
198194 OCL_CHECK (err, err = krnl_write.setArg (2 , iter));
199195
200196 /* Execute Kernel */
@@ -211,22 +207,20 @@ int main(int argc, char* argv[]) {
211207 bpersec = (dbytes / dsduration);
212208 gbpersec = bpersec / ((double )1024 * 1024 * 1024 );
213209
214- std::cout << " Write Throughput = " << gbpersec << " (GB/sec) for buffer size " << dmbytes << " MB \n\n " ;
210+ std::cout << " Write Throughput = " << gbpersec << " (GB/sec) for buffer size " << size_str << " \n\n " ;
215211
216- if (gbpersec > write_max[0 ]) {
217- write_max[0 ] = gbpersec;
218- write_max[1 ] = dmbytes;
212+ if (gbpersec > write_max) {
213+ write_max = gbpersec;
219214 }
220215
221216 delete (buffer[0 ]);
222217 delete (buffer[1 ]);
223218 }
224219
225220 std::cout << " Maximum bandwidth achieved :\n " ;
226- std::cout << " Concurrent Read and Write Throughput = " << concurrent_max[0 ] << " (GB/sec) for buffer size "
227- << concurrent_max[1 ] << " MB\n " ;
228- std::cout << " Read Throughput = " << read_max[0 ] << " (GB/sec) for buffer size " << read_max[1 ] << " MB\n " ;
229- std::cout << " Write Throughput = " << write_max[0 ] << " (GB/sec) for buffer size " << write_max[1 ] << " MB\n\n " ;
221+ std::cout << " Concurrent Read and Write Throughput = " << concurrent_max << " (GB/sec) \n " ;
222+ std::cout << " Read Throughput = " << read_max << " (GB/sec) \n " ;
223+ std::cout << " Write Throughput = " << write_max << " (GB/sec) \n\n " ;
230224 std::cout << " TEST PASSED\n " ;
231225 return EXIT_SUCCESS;
232226}
0 commit comments