void test_cases() { double start_time = 0.0f, end_time = 0.0f; for (int i = 0; i < TestFrameWork::size; i++) { std::cout<<"\n"<<"Test Case "<<i+1; result = new float[ TestFrameWork::matrix_dim[i] * TestFrameWork::matrix_dim[i] ]; sq_matrix_1 = new float[matrix_dim[i] * matrix_dim[i]]; sq_matrix_2 = new float[matrix_dim[i] * matrix_dim[i]]; answers = new float[matrix_dim[i] * matrix_dim[i]]; randomize(sq_matrix_1, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); randomize(sq_matrix_2, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); start_time = wtime(); matrix_multiplication(TestFrameWork::sq_matrix_1, TestFrameWork::sq_matrix_2, result, TestFrameWork::matrix_dim[i]); end_time = wtime(); std::cout<<"\t"<< (end_time - start_time)<<" milliseconds\n"; tripleloop(answers, sq_matrix_1, sq_matrix_2, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); CPPUNIT_ASSERT(TestFrameWork::diff(answers, result, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]) < EPS); delete sq_matrix_1; delete sq_matrix_2; delete answers; delete result; } }
void test_cases() { double start_time = 0.0f, end_time = 0.0f; for (int i = 0; i < TestFrameWork::size; i++) { std::cout<<"\n"<<"Test Case "<<i+1; result = new float[ TestFrameWork::matrix_dim[i] * TestFrameWork::matrix_dim[i] ]; sq_matrix_1 = new float[matrix_dim[i] * matrix_dim[i]]; sq_matrix_2 = new float[matrix_dim[i] * matrix_dim[i]]; answers = new float[matrix_dim[i] * matrix_dim[i]]; randomize(sq_matrix_1, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); randomize(sq_matrix_2, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); matrix_multiplication(TestFrameWork::sq_matrix_1, TestFrameWork::sq_matrix_2, result, TestFrameWork::matrix_dim[i]); tripleloop(answers, sq_matrix_1, sq_matrix_2, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]); CPPUNIT_ASSERT(TestFrameWork::diff(answers, result, TestFrameWork::matrix_dim[i], TestFrameWork::matrix_dim[i]) < EPS); start_time = wtime(); for (int j = 0; j < NUM_REPS; ++j) { matrix_multiplication(TestFrameWork::sq_matrix_1, TestFrameWork::sq_matrix_2, result, TestFrameWork::matrix_dim[i]); } end_time = wtime(); double t = (double)(end_time - start_time)/(double)(1000.0*NUM_REPS); double gflops = (double)((2*TestFrameWork::matrix_dim[i]-1)*TestFrameWork::matrix_dim[i]*TestFrameWork::matrix_dim[i]*1e-9/t); std::cout<<"\t"<< gflops <<" Gflop/s\n"; delete sq_matrix_1; delete sq_matrix_2; delete answers; delete result; } }