main() { perfTest(100); perfTest(1000); perfTest(10000); perfTest(100000); perfTest(1000000); }
/* * bool testWithLength(int length) * * Creates three random vectors with the given length and times the performance of scalar_fma() and * vectorized_fma() with these vectors as input. * * Returns true if the results match. */ bool testWithLength(int length) { printf("Test length: %d\n", length); // Create (and clone) three vectors with the given length struct doubleVector a = random_vector(length); struct doubleVector b = random_vector(length); struct doubleVector c = random_vector(length); struct doubleVector a2 = vector_clone(&a); struct doubleVector b2 = vector_clone(&b); struct doubleVector c2 = vector_clone(&c); // Test scalar performance printf("\tScalar cycle count: %d\n", perfTest(&a, &b, &c, scalar_fma)); // Test vector performance printf("\tVector cycle count: %d\n", perfTest(&a2, &b2, &c2, vector_fma)); // Compare results bool correct = vector_compare(&a, &a2); printf("\t%s\n", correct ? "MATCH" : "NO MATCH"); // Free dynamic resources free(a.data); free(b.data); free(c.data); free(a2.data); free(b2.data); free(c2.data); return correct; }
int main(int argc, const char * argv[]) { test1(); test2(); test3(); test4(); perfTest(); return 0; }
/** * Runs the test suite. */ int runTests() { int hr = SUCCESS; #ifndef EXTRA_CREDIT #ifndef COMPETITION_TEST FILE *f_ls_base; #else FILE *f_ls_compTest; #endif #endif #ifdef EXTRA_CREDIT FILE *f_ls_extra_credit; #endif #if COMPETITION FILE *f_ls_competition; f_ls_competition = fopen("competition.ls", "w"); #endif RUN_TEST(initDiskTest()); #ifndef EXTRA_CREDIT #ifndef COMPETITION_TEST f_ls_base = fopen("base.ls", "w"); f_ls = f_ls_base; RUN_TEST(initFSTest()); RUN_TEST(createSimpleFileTest()); RUN_TEST(createSimpleFileTest()); RUN_TEST(createSimpleFileWriteReadTest()); RUN_TEST(singleBigFileTest()); RUN_TEST(multipleFilesTest()); RUN_TEST(createFolderTest()); RUN_TEST(multipleFoldersTest()); RUN_TEST(appendFileTest()); RUN_TEST(multipleOpenFilesTest()); RUN_TEST(nestedFoldersTest()); RUN_TEST(errorTest()); #else f_ls_compTest = fopen("compTest.ls", "w"); f_ls = f_ls_compTest; RUN_TEST(customTest()); #endif #endif #ifdef EXTRA_CREDIT f_ls_extra_credit = fopen("extra_credit.ls", "w"); f_ls = f_ls_extra_credit; RUN_TEST(removeTest()); #endif // NOTE: We're not using this competition code this year. #if COMPETITION f_ls = f_ls_competition; RUN_TEST(perfTest()); #endif Fail: #ifndef EXTRA_CREDIT #ifndef COMPETITION_TEST fclose(f_ls_base); #else fclose(f_ls_compTest); #endif #endif #ifdef EXTRA_CREDIT fclose(f_ls_extra_credit); #endif #if COMPETITION fclose(f_ls_competition); #endif return hr; }