óÀ½¿¡
¿©±â¿¡¼´Â INtime·Î
Intel(R) IPP(Integrated Performance Primitives)¸¦ »ç¿ëÇÏ´Â »ùÇÿ¡ ´ëÇØ
¼³¸íÇÕ´Ï´Ù.
Intel
Integrated Performance Primitives(ÀÎÅÚ IPP) ´Â À̹ÌÁö ó¸®, ½ÅÈ£ ó¸®, JPEG ÄÚµù, ºñµð¿À·ÄÚµù µî¿¡ Æø³ÐÀº ±â´ÉÀ» Á¦°øÇÏ´Â
¸ÖƼ¹Ìµð¾î·µµ¼°üÀÔ´Ï´Ù. º¤ÅÍ, Åë°è ¿¬»ê, ½ÅÈ£ ÇÊÅ͸µ, Ǫ¸®¿¡ º¯È¯, À̹ÌÁö/JPEG ¾ÐÃà ¹× Ä®¶ó º¯È¯ÀÇ Áß¿äÇÑ ÇÔ¼ö´Â, OpenMP¸¦
»ç¿ëÇØ ³»ºÎÀûÀ¸·Î ½º·¹µåÈ µÇ°í ÀÖ½À´Ï´Ù.
- Á¦Ç° Á¤º¸(ÀÚ¼¼ÇÑ °ÍÀº Intel(R) Á¦Ç° Á¤º¸¸¦ ºÁ
ÁÖ¼¼¿ä
ÀÌÇÏÀÇ Á¦Ç°À» ÇÊ¿ä·Î
ÇÕ´Ï´Ù£º
- Intel(R) C++ Compiler(Intel(R)
C++ Integrations in Microsoft Visual Studio)
- Intel(R) Integrated Performance
Primitives Version 5.3
- INtime 3.0
SDK
IPPtest ´Â
Intel(R) Integrated Performance PrimitivesÀÇ ±â´ÉÀÇ ÀϺÎÀÎ µ¥ÀÌÅÍ ¾ÐÃà±â´ÉÀ» ÀÌ¿ëÇÏ´Â »ùÇÃÀÔ´Ï´Ù. º»»ùÇÿ¡´Â
Visual Studio 2005, Intel(R) C++ Compiler ¹× Intel(R) C/C++ CompilerÀÇ ±â´ÉÀÎ,
Intel(R) C++ Integrations in Microsoft Visual Studio°¡ ÇÊ¿äÇÕ´Ï´Ù. °¢°¢ÀÌ ¿Ã¹Ù¸£°í ÀνºÅç µÈ »óÅ¿¡
´ëÇϰí, ÇÁ·ÎÁ§Æ® ¼Ö·ç¼Ç ÆÄÀÏ"IPPtest.sln"¸¦ ¿¸é, ÇÁ·ÎÁ§Æ® ÀͽºÇ÷η¯»ó¿¡ ÀÌÇÏ¿Í °°ÀÌ
Ç¥½ÃµË´Ï´Ù:
- IPPtest ÇÁ·ÎÁ§Æ®(INtime RT Process
ÇÁ·ÎÁ§Æ®)
- Intel Performance PrimitivesÀÇ
±â´ÉÀ» ÀÌ¿ëÇÏ´Â INtime ¾îÇø®ÄÉÀÌ¼Ç »ý¼º ÇÁ·ÎÁ§Æ®
- testlib ÇÁ·ÎÁ§Æ®(IPP INtime ¶óÀ̺귯¸®
ÀÛ¼º¿ë ÇÁ·ÎÁ§Æ®)
- INtime RTÇÁ·Î¼¼½º·ÎºÎÅÍ ÄÝ µÇ´Â IPP ¶óÀ̺귯¸®
ÄÝÀ» ·¦ ÇÑ ¶óÀ̺귯¸® ÄÝ.
- µ¥ÀÌÅÍ ¾ÐÃà(data-compression) »ùÇÃÀ»
ÀÌ¿ëÇØ, testmain() ÇÔ¼ö ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

IPPtest »ùÇÿ¡¼´Â,
ÇÁ·Î±×·¥ ±âµ¿ ÆÐ½º¿Í µ¿ÀÏ ÆÐ½º¿¡ Á¸ÀçÇÏ´Â"origin.bin"(¹ÙÀ̳븮Çʵå)¸¦ Àо, IPP ¶óÀ̺귯¸® 󸮿¡ ÀÇÇØ ¾ÐÃà 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù.
¾ÐÃàÇÑ ¹ÙÀ̳ʸ® À̹ÌÁö¸¦"compressed.bin"·Î ÇØ, µ¿ÀÏ Æú´õ³»¿¡ ÆÄÀϷμ º¸Á¸Çϰí ÀÖ½À´Ï´Ù£º
IPPtest.rta
main() ó¸®:
#define INFILENAME "origin.bin"
#define OUTFILENAME "cmpressed.bin"
void main(int argc, char *argv[] )
{
FILE *fp, *fp1;
char filepath[256];
char inFile[256];
char outFile[256];
char *cp = NULL;
struct stat st;
int x;
char *inbuf, *outbuf;
size_t inbufsize, outbufsize;
memset( filepath, 0, sizeof(filepath));
memset( inFile, 0, sizeof(inFile));
memset( outFile, 0, sizeof(outFile));
strcpy( filepath, argv[0]);
cp = strrchr( filepath, '\\' );
if ( ! cp ){
printf("Cannot get file path!! \n");
return;
}
* (cp + 1) = '\0';
strcpy( inFile, filepath );
strcpy( outFile, filepath );
strcat( inFile, INFILENAME );
strcat( outFile, OUTFILENAME );
if (stat(inFile, &st) < 0) {
perror("STAT: INFILE");
return;
}
inbufsize = outbufsize = st.st_size;
inbuf = malloc(inbufsize);
outbuf = malloc(outbufsize);
if (! inbuf || ! outbuf) {
perror("Unable to allocate memory for test\n");
return;
}
fp = fopen(inFile, "rb");
if(! fp) {
perror("fopen: INFILE");
free(outbuf);
free(inbuf);
return;
}
if (fread(inbuf, 1, inbufsize, fp) ! = inbufsize) {
fclose(fp);
fprintf(stderr, "Failed to read input file\n");
return;
}
fclose(fp);
printf("Compressing file of %u bytes\n", inbufsize);
x = testmain(inbuf, inbufsize, outbuf, &outbufsize);
printf("Function compress() returned %d\n", x);
fp1 = fopen(outFile, "wb");
if(! fp1) {
perror("fopen: OUTFILE");
free(outbuf);
free(inbuf);
return;
}
fwrite( outbuf, 1, outbufsize, fp1);
fclose( fp1 );
printf("File compressed: size=%u bytes\n", outbufsize);
}
Intel IPP¸¦ Æ÷ÇÔÇÑ
¶óÀ̺귯¸®(testlib) ºÎ´Â INtime ¾îÇø®ÄÉÀ̼ÇÀÇ µð¹ö°Å¿¡ ÀÇÇØ µð¹ö±× ÇÒ ¼ö ¾ø½À´Ï´Ù(¶óÀ̺귯¸® ÄÝ¿¡ breakpoint¸¦ ¼³Á¤ÇØ,
½ºÅÜ ½ÇÇàµîÀ» ½Ç½ÃÇÏ´Â µî). ½Ç¿î¿ë»ó¿¡¼´Â ¶óÀ̺귯¸®¸¦ »ý¼º½Ã¿¡ µ¶¸³ÇÑ È¯°æ¿¡¼ Å×½ºÆ®¸¦ ½Ç½ÃÇØ,
Â¥³Ö½À´Ï´Ù.