안녕하세요.
연구실에서 계산용컴퓨터를 사려고 하는데요 대략적인 예산은 500~600만(그래픽카드 제외) 입니다.
파이썬(numpy, scipy 등등..)으로 행렬(혹은 텐서)계산을 하는데요.
보통 행렬의 크기가 300*300부터해서 1500*1500 사이즈의 행렬들을 계산합니다.
데이터들을 빠르게 얻고 싶으면 특히 cpu를 어떤식으로 맞추면 될지 궁금합니다.
답글 남겨주시면 감사하겠습니다 ^^
안녕하세요.
연구실에서 계산용컴퓨터를 사려고 하는데요 대략적인 예산은 500~600만(그래픽카드 제외) 입니다.
파이썬(numpy, scipy 등등..)으로 행렬(혹은 텐서)계산을 하는데요.
보통 행렬의 크기가 300*300부터해서 1500*1500 사이즈의 행렬들을 계산합니다.
데이터들을 빠르게 얻고 싶으면 특히 cpu를 어떤식으로 맞추면 될지 궁금합니다.
답글 남겨주시면 감사하겠습니다 ^^
±×³É Ŭ·° ³ôÀº cpu »ç½Ã¸é µË´Ï´Ù
Âü°í·Î ¿ä»çÀÌ´Â Çà·Ä °è»êÀº gpu (cuda)¸¦ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù
KSTAR ÅäÄ«¸· Àû¿ë »ç·Ê
http://images.nvidia.com/content/gtc-kr/part_5_spinhalf.pdf
MMX, SSE, AVX µîÀÇ SIMD±â¼úÀÌ Àû¿ëµÉ¼ö·Ï °è»ê¼Óµµ´Â ÀϹÝÀûÀ¸·Î ¹è·Î »¡¶óÁý´Ï´Ù.
numpyµµ MKLÀ» ÀÌ¿ëÇϵµ·Ï µÇ¾îÀÖÀ¸¸é º´·ÄÈµÇ¾î¼ ÄÚ¾î¼öµµ ²Ï ¿µÇâÀ» ¹ÌÄ¥°Ì´Ï´Ù.
GPGPU°¡ Matrix°è»ê¿¡¼ ¸¹ÀÌ ºü¸£±ä Çѵ¥
Overhead¶§¹®¿¡ CPUº¸´Ù °è»êÀÌ »¡¶óÁö´Â »çÀÌÁî°¡ ÀϹÝÀûÀ¸·Î ~1M(1024x1024) Á¤µµ¶ó¼
1500x1500±îÁöÀÇ °è»êÁ¤µµ´Â ±×³É CPU¸¦ ÀÌ¿ëÇÏ´Â°Ô ÆíÇÒÁöµµ ¸ð¸£°Ú½À´Ï´Ù.
±×¸®°í HeavyÇÑ °è»êÀÏ °æ¿ì¿¡´Â ÆÄÀ̽㺸´Ù´Â C/C++ ¶Ç´Â Æ÷Æ®¶õÀ» »ç¿ëÇÏ½Ã´Â°Ô ½Ã°£¸é¿¡¼ ÈÎ~~~~¾À À¯¸®ÇÕ´Ï´Ù.
gpgpu¿¡¼ ¿À¹öÇìµå´Â º¸Åë °è»êµ¥ÀÌÅ͸¦ ¸ÞÀÎ ¸Þ¸ð¸® -> GPU¸Þ¸ð¸®·Î ¿Ã¸®´Â ·¹ÀÌÅÏ½Ã¿Í ±× ¹Ý´ë·Î °è»ê³¡³ °á°ú¸¦ gpu¿¡¼ ´Ù½Ã ¸ÞÀθ޸𸮷Π¿Ã¸®´Â ·¹ÀÌÅϽø¦ ¸»Çϴµ¥, ´ç¿¬È÷ ÇÑ ¹ø¿¡ ¸¹Àº Çà·Ä°è»êÀ» ÇÏ´Â °Ô È¿À²ÀÌ ÁÁ°Åµç¿ä. fp32¶ó¸é 1500x1500 ÇغÃÀÚ 9¸Þ°¡¹ÙÀÌÆ®¹Û¿¡ ¾ÈµË´Ï´Ù. ¿äÁò ºñµð¿À Ä«µåµé¸Þ¸ð¸®°¡ 8±â°¡´Â ±âº»À¸·Î ±ò°í °¡´ÂÁö¶ó Àú·± Çà·Ä ¼ö¹é°³´Â ¿¬»êÇÏ°íµµ ³²À» °Í °°¾Æ¿ä. (À̷лó 8±â°¡¸é 950°³ Á¤µµ µé¾î°¡³×¿ä. ¾Æ¿ôDz Çà·Äµµ ÀúÀåÇØ¾ß ÇÏ´Ï±î ´ë·« 600°³ Á¤µµ´Â ÇÑ ¹ø¿¡ °è»ê °¡´ÉÇÏ´Ù°í º¼ ¼ö ÀÖ°Ú½À´Ï´Ù.) ¹°·Ð ÇÑ°è¶ó´Â °Ô Á¸ÀçÇϱä ÇÏÁö¸¸ ±×·¡µµ ÃæºÐÇÑ ¼öÁØÀÔ´Ï´Ù. ±×¸®°í ÆÄÀ̼± ¾²½Å´Ù¸é ´ç¿¬È÷ ÅÙ¼ÇÃ·Î¿ì ¾²½ÇÅÙµ¥, ÅÙ¼Ç÷οì GPU¼¼ÆÃÀÌ Á» ±î´Ù·Ó±ä ÇÕ´Ï´Ù¸¸ Çѹø ÇØ ³õ°í ³ª¸é °£´ÜÇÑ APIÈ£Ãâ·Îµµ ÃæºÐÈ÷ °¡¼ÓÀ» ¹ÞÀ» ¼ö ÀÖÀ¸¹Ç·Î ±»ÀÌ C++À» ¾µ ÇÊ¿ä´Â ¾ø´Ù°í »ý°¢ÇÕ´Ï´Ù.
¿À¹öÇìµå¶§¹®¿¡ ÀÏÁ¤»çÀÌÁî ÀÌ»óÀÌ µÇ¾î¾ß¸¸ GPGPU¸¦ ÀÌ¿ëÇÑ ¿¬»êÀÌ CPU¿¬»êº¸´Ù ´õ ºü¸£´Ù°í ÇÑ À̾߱⿴½À´Ï´Ù.
1500x1500 ~ 2.5M Á¤µµÀ̱ä ÇÏÁö¸¸ ¿¹¸¦ µé¾î CPU·Î 2ÃÊÂ¥¸® ¿¬»êÀÌ GPU·Î 1ÃÊ ¿¬»êÀÌ µÇ´Â Á¤µµ´Â ±×³É CPU ¿¬»êÀÌ ÆíÇÏ´Ù°í »ý°¢ÇÕ´Ï´Ù.
¹°·Ð 2½Ã°£ Â¥¸®°¡ 1½Ã°£ÀÌ µÇ´Â °ÍÀº ´Ù¸¥ À̾߱â ÀÌÁö¿ä...
¶ó°í Çϼż 1M±îÁö¶ó°í »ý°¢Çß½À´Ï´Ù. Á¦°¡ ¹Ý´ë·Î ÀÌÇØÇÑ °Ô ¾Æ´Ñ °Í °°¾Æ¿ä.
[Overhead¶§¹®¿¡ CPUº¸´Ù °è»êÀÌ »¡¶óÁö´Â »çÀÌÁî°¡ ÀϹÝÀûÀ¸·Î 1M(1024x1024)~ ºÎÅͶó¼]
·Î ¾²½Ã´Â °Ô ¸Â´Â °Í °°½À´Ï´Ù.
Àú´Â "~1M"ÀÇ Àǹ̸¦ "¹é¸¸ ±îÁö"°¡ ¾Æ´Ï¶ó "´ë·« ¹é¸¸"ÀÇ Àǹ̷Π»ç¿ëÇÑ °ÍÀ̾ú½À´Ï´Ù.