Tag: GPU

CUDAFunctionLoad

หลังจากที่ลองเขียนโปรแกรมเล่น(ด้วยภาษา C)โดยใช้ CUDA สักพักแล้วเกิดของขึ้นร้อนวิชาอยากจะลองเอาไปใช้งานจริงแต่มันก็ติดว่างานส่วนใหญ่ที่ทำจะใช้ Mathematica เป็นหลัก หลายคำสั่งหรือfunction ที่เขียนขึ้นเองนั้นก็อยู่ใน Mathematica หมด ก็เลยคิดว่าแล้วจะเอาfunction ที่เขียนด้วย CUDA ไปใช้ใน Mathematica ยังไง หลังจากงมอยู่พักใหญ่ก็พบว่า Mathematica ตั้งแต่เวอร์ชั่น 8 เป็นต้นมาสามารถที่จะใช้ความสามารถของ CUDA ได้โดย package ที่ชื่อ CUDALink ซึ่งมีมาด้วยกับตัว Mathematica แล้ว วิธีการก็เพียงโหลดpackage นี้ <<CUDALink` จากนั้นเราก็สามารถที่จะเรียกfunction ที่เราเขียนเข้าไปได้ด้วยคำสั่ง CUDAFunctionLoad ครับเช่น จะว่าไปแล้ว CUDAFunctionLoad นี่มันก็เจ๋งดีครับทำให้ทุกอย่างง่ายไปหมด แต่ก็ยังมีเรื่องที่ต้องปวดหัวหรือระวังเกี่ยวกับชนิดของตัวแปรครับ ดูรายละเอียดเพิ่มเติมได้ที่ http://reference.wolfram.com/mathematica/CUDALink/ref/CUDAFunctionLoad.html

CUDA ใน Mathematica ทำให้การคำนวณเร็วขึ้น

ทดลองเปรียบเทียบว่าถ้าใช้ GPU คำนวณใน Mathematica จะเร็วขึ้นจากที่ใช้ CPU มากน้อยเท่าใด  เครื่องที่ใช้ทดสอบคือ Dell Precision T5500 , CPU Xeon 2.66 GHz X5650  RAM 12GB, Windows 7  64-Bit, NVIDIA Quadro 4000, Mathematica 8.0.4 คำสั่งที่ใช้ครับ a=RandomReal[{0,1},{2048,2048}]; b=RandomReal[{0,1},{2048,2048}]; AbsoluteTiming[Do[CUDADot[a,b];,{100}];] AbsoluteTiming[Do[Dot[a,b];,{100}];] c=RandomReal[{0,1},{512,512}]; AbsoluteTiming[Do[CUDAFourier[c];,{100}]] AbsoluteTiming[Do[Fourier[c];,{100}]]

ปัญหา vcvars64.bat กับ NVCCCompiler

เครื่องที่ผมใช้งานลง Windows 7 64 bits พร้อมกับ Visual C++ Express 2010 กับ Windows SDK 7.1 และ NVIDIA SDKs Toolkit แล้วมีปัญหาในการ compile library ใน Mathematica ด้วย CreateLibrary หรือ CreateExecuteable กับ NVCCCompiler ใน Mathematica ซึ่งมันจะขึ้น $Failed หลังจากที่งมหาคำตอบนี้อยู่นานก็พบว่า ไฟล์ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat” จะมีการเรียก ไฟล์ C:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\bin\amd64\vcvars64.bat ซึ่งมันไม่ได้ติดตั้งมาด้วยกับตัว compiler ดังนั้นผมเลยสร้างไฟล์ vcvars64.bat มาใหม่โดยใส่บรรทัดนี้ลงไปครับ CALL

ติดตั้ง driver ของ nvidia quadro บน Scientific Linux 6.1

พอดีว่าได้เครื่อง Dell Precision T1600 มาทำงานด้าน Molecular Simulation เครื่องมีการ์ดจอที่สนับสนุน CUDA มาด้วยคือ Nvidia Quadro 2000 หลังจากติดตั้ง Scientifc Linux (SL6.1) เสร็จแล้ว ก็ทำการเพิ่ม Repository จาก elrepo.org เข้าไป ตามนี้ rpm –import http://elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm จากนั้นก็ติดตั้ง package ชื่อ kmod-nvidia yum –disablerepo=\* –enablerepo=elrepo install kmod-nvidia  แล้วก็ reboot เครื่องใหม่ เป็นอันเสร็จพิธี ลอง render โครงสร้างของโปรตีนโดยใช้ VMD ปรากฏว่าเร็วมากอย่างเห็นได้ชัด