CUDALink in Dell Precision 3581

เพิ่งลงใช้งาน Mathematica 13.3 ในเครื่อง Dell Precision M3581 แต่ติดปัญหาว่าพอใช้คำสั่ง CUDAQ[] แล้วมันขึ้นว่า False ทั้งที่เรามีตัวdriverและtoolsล่าสุดของ CUDA พอลองปรับเปลี่ยนก็เจอว่าหนึ่งในตัวที่ควบคุมก็คือ NVIDIA Control Panel

ซึ่งถ้าใครเจอปัญหานี้ให้ไปที่ NVIDIA Control Panel -> Workstation -> Manage GPU Utilization แล้วเลือก Use for Graphics and compute needs

ปัญหา cuTexRefSetAddress2D_v3

พอดีว่าลงWindows 7 64bit กับ Mathematica 11.1.1 ใหม่ แล้วเจอปัญหา  ตามภาพด้านล่างตอนใช้ CUDALink พอเช็คดูเวอร์ชั่นของ nvidia driver ที่ใช้กับการ์ดจอ (Quadro 2000)ด้วยคำสั่ง CUDADriverVersion[] พบว่าเป็นรุ่นเก่ามากคือ27x.x  เลยทำการ update เป็นตัวใหม่กว่าคือ 377.55จากนั้นก็ลองใช้ QUDAQ[] ใหม่เช็คดูปรากฎว่าไม่มีปัญหาแล้วสามาถใช้งานได้ตามปกติ

CUDAFunctionLoad

หลังจากที่ลองเขียนโปรแกรมเล่น(ด้วยภาษา C)โดยใช้ CUDA สักพักแล้วเกิดของขึ้นร้อนวิชาอยากจะลองเอาไปใช้งานจริงแต่มันก็ติดว่างานส่วนใหญ่ที่ทำจะใช้ Mathematica เป็นหลัก หลายคำสั่งหรือfunction ที่เขียนขึ้นเองนั้นก็อยู่ใน Mathematica หมด ก็เลยคิดว่าแล้วจะเอาfunction ที่เขียนด้วย CUDA ไปใช้ใน Mathematica ยังไง

หลังจากงมอยู่พักใหญ่ก็พบว่า Mathematica ตั้งแต่เวอร์ชั่น 8 เป็นต้นมาสามารถที่จะใช้ความสามารถของ CUDA ได้โดย package ที่ชื่อ CUDALink ซึ่งมีมาด้วยกับตัว Mathematica แล้ว วิธีการก็เพียงโหลดpackage นี้

<<CUDALink`

จากนั้นเราก็สามารถที่จะเรียกfunction ที่เราเขียนเข้าไปได้ด้วยคำสั่ง CUDAFunctionLoad ครับเช่น

CUDAFunctionLoad example
จะว่าไปแล้ว CUDAFunctionLoad นี่มันก็เจ๋งดีครับทำให้ทุกอย่างง่ายไปหมด แต่ก็ยังมีเรื่องที่ต้องปวดหัวหรือระวังเกี่ยวกับชนิดของตัวแปรครับ

ดูรายละเอียดเพิ่มเติมได้ที่ http://reference.wolfram.com/mathematica/CUDALink/ref/CUDAFunctionLoad.html

%d bloggers like this: