... // #define _DATASIZE_ 8 // #define _DATASIZE_ 1024 // #define _DATASIZE_ 8192 // #define _DATASIZE_ 65536 // #define _DATASIZE_ 131072 // #define _DATASIZE_ 262144 // #define _DATASIZE_ 524288 #define _DATASIZE_ 1048576 #define _RTNUMBER_OF_TESTS_ _RTNUMBER_OF_TESTS_0000001024 // 2^10 // #define _RTNUMBER_OF_TESTS_ _RTNUMBER_OF_TESTS_0000032768 // 2^15 // #define _RTNUMBER_OF_TESTS_ _RTNUMBER_OF_TESTS_0001048576 // 2^20 // #define _RTNUMBER_OF_TESTS_ _RTNUMBER_OF_TESTS_0033554432 // 2^25 // #define _OUTPUT_RESULTS_ ... // Sub-Test 16 - Performance Evaluation of ippsSum_32f function // IPPAPI( IppStatus, ippsSum_32f, ( const Ipp32f *pSrc, int len, Ipp32f *pSum, IppHintAlgorithm hint ) ) { ///* CrtPrintf( RTU("Sub-Test 16\n") ); static Ipp32f fSrc[ _DATASIZE_ ] = { 0.0f }; Ipp32f fSum; RTint t; RTint i; RTuint uiTicksDelta = 0U; for( i = 0; i < ( RTint )_DATASIZE_; i++ ) { fSrc[i] = ( Ipp32f )1.0f; } CrtPrintf( RTU("Data Size : %ld bytes\n"), ( RTint )_DATASIZE_ ); CrtPrintf( RTU("Number of Tests: %ld\n"), ( RTint )_RTNUMBER_OF_TESTS_ ); // Test-Case 1 - Generic Sum - Rolled Loops - 1-in-1 { g_uiTicksStart = SysGetTickCount(); for( t = 0; t < ( RTint )_RTNUMBER_OF_TESTS_; t++ ) { fSum = 0.0f; for( i = 0; i < ( RTint )_DATASIZE_; i++ ) { fSum += fSrc[i]; } } uiTicksDelta = ( SysGetTickCount() - g_uiTicksStart ); CrtPrintf( RTU("[ Generic Sum ] Completed - Rolled Loops - 1-in-1\n") ); #ifdef _OUTPUT_RESULTS_ for( i = 0; i < ( RTint )_DATASIZE_; i++ ) CrtPrintf( RTU("%.2f "), fSrc[i] ); CrtPrintf( RTU("\n") ); #endif CrtPrintf( RTU("Sum: %f\n"), fSum ); CrtPrintf( RTU(" Executed in: %5ld ticks\n"), ( RTint )uiTicksDelta ); } // Test-Case 2 - Generic Sum - UnRolled Loops - 4-in-1 { g_uiTicksStart = SysGetTickCount(); for( t = 0; t < ( RTint )_RTNUMBER_OF_TESTS_; t++ ) { fSum = 0.0f; for( i = 0; i < ( RTint )_DATASIZE_; i+=4 ) { fSum += ( fSrc[i] + fSrc[i+1] + fSrc[i+2] + fSrc[i+3] ); } } uiTicksDelta = ( SysGetTickCount() - g_uiTicksStart ); CrtPrintf( RTU("[ Generic Sum ] Completed - UnRolled Loops - 4-in-1\n") ); #ifdef _OUTPUT_RESULTS_ for( i = 0; i < ( RTint )_DATASIZE_; i++ ) CrtPrintf( RTU("%.2f "), fSrc[i] ); CrtPrintf( RTU("\n") ); #endif CrtPrintf( RTU("Sum: %f\n"), fSum ); CrtPrintf( RTU(" Executed in: %5ld ticks\n"), ( RTint )uiTicksDelta ); } // Test-Case 3 - ippsSum_32f // Set Hint Algorithm: ippAlgHintNone, or ippAlgHintFast, or ippAlgHintAccurate { g_uiTicksStart = SysGetTickCount(); for( t = 0; t < ( RTint )_RTNUMBER_OF_TESTS_; t++ ) { fSum = 0.0f; ::ippsSum_32f( &fSrc[0], ( RTint )_DATASIZE_, &fSum, ippAlgHintNone ); } uiTicksDelta = ( SysGetTickCount() - g_uiTicksStart ); CrtPrintf( RTU("[ ippsSum_32f ] Completed\n") ); #ifdef _OUTPUT_RESULTS_ for( i = 0; i < ( RTint )_DATASIZE_; i++ ) CrtPrintf( RTU("%.2f "), fSrc1[i] ); CrtPrintf( RTU("\n") ); #endif CrtPrintf( RTU("Sum: %f\n"), fSum ); CrtPrintf( RTU(" Executed in: %5ld ticks\n"), ( RTint )uiTicksDelta ); } //*/ } ...