วันพฤหัสบดีที่ 28 มกราคม พ.ศ. 2553

CUDA Programming # 1

2.CUDA #1
จาก sequential program ทำการเปลี่ยนเป็น Parallel แล้วแสดงการทำงานระหว่าง Host และ GPU

[Source Code]


Compile Program
พิมพ์ nvcc ch2.cu – o ch2

Run Program
พิมพ์ ./ch2 แสดงผลลัพธ์


CUDA Programming # 2

3.CUDA #2
จากSequential Code เปลี่ยนให้เป็น Parallel Code แล้วแสดงการทำงานระหว่าง Host และ GPU

[Source Code]

Compile Program
พิมพ์ nvcc ch3v2.cu – o ch3v2

Run Program
พิมพ์ ./ch3v2 แสดงผลลัพธ์

OpenMP Programming

1.เขียนเป็น Parallel แบบ openMP


[Source Code]


Compile Program
พิมพ์ gcc-4.3 –fopenmp ch1Omp3.c – o ch1Omp3

Run Program
พิมพ์ ./ch1Omp3 แสดงผลลัพธ์

วันอาทิตย์ที่ 10 มกราคม พ.ศ. 2553

Run CUDA sdk and write VecAdd program

Exercise 1

ทำการติดตั้ง CUDA sdk ลงบน Server ซึ่งเป็น Ubuntu 9.04
และทำการทดสอบการรัน โปรแกรม VecAdd.cu

Step 1 :: Login Server
  • ทำการ log on to the server ด้วย โปรแกรม putty กำหนด Address เป็น "61.91.208.65" ด้วย login name และ password ที่ได้มา

  • ทำการเปลี่ยน password ใหม่ โดยพิมพ์คำสั่ง: $passwd


      Step 2 :: Install CUDA software & Verify the installation
      ทำการ download program CUDA sdk จาก web site หรือทำการ copy จากแหล่งที่มาใดๆ


      กรณี 1 ทำการ download โดยตรงจาก web site ให้ทำการพิมพ์คำสั่ง :

      กรณี 2 ทำการ copy file sdk มาจากแหล่งอื่น ให้พิมพ์คำสั่ง :

      $cp /tmp/cudasdk_2.3_linux.run /home/cs72102/cudasdk_2.3_linux.run

      (ทำการ copy files จาก /tmp/cudasdk_2.3_linux.run ไปวางที่ /home/cs72102/cudasdk_2.3_linux.run)



      ก่อนการติดตั้งให้ทำการกำหนด values of environment

      1. set path nvcc ด้วยการพิมพ์ :



      $export PATH=/usr/local/cuda/bin:$PATH



      2. set path library ด้วยการพิมพ์ :



      $export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

      ทำการติดตั้งด้วยการพิมพ์คำสั่ง :


      ในขั้นตอนการติดตั้งเลือก install path files เป็น dafault path files
      ดังนั้นจะเกิด files NVDIA_GPU_Computing_SDK. อยู่ที่ Home user ซึ่งในที่นี้จะอยู่ที่


      $/home/cs72102/NVDIA_GPU_Computing_SDK
      ทำการทดสอบว่า nvcc ทำงานได้หรือไม่ โดยการพิมพ์คำสั่ง :$nvcc -V แสดงผลลัพธ์ตามรูป


      Additional -->Compiling for Hardware Emulation

      สำหรับบางระบบที่ไม่มี CUDA-capable GPU
      จำเป็นต้องสร้าง Emulated สำหรับ Hardware ด้วย
      โดยการไปที่ path file ที่ทำการ install sdk แล้วทำการพิมพ์คำสั่ง :



      $make emu=1

      ซึ่งผลลัพธ์จะไปแทนที่ใน bin/linux/emurelease



      Run "deviceQuery"

      เพื่อแสดงการ์ดจอของเครื่อง server 61.91.208.65

      โดยพิมพ์คำสั่ง :$./deviceQuery Run "bandwidthTest"

      เป็นการแสดงขนาดการส่งข้อมูลระหว่าง device กับ host , หรือ host กับ device , และ device กับ device
      โดยพิมพ์คำสั่ง :$./bandwidthTest


      Step 3 :: Complie & Run Program VecAdd

    1. ทำการเขียนโปรแกรม VecAdd ใน Notepad แล้ว save files เป็น VecAdd.cu
    2. แล้วทำการ upload ไปวางใน server หรือทำการเปิด editor ขึ้นมาแล้วเขียน code ด้วยคำสั่ง:$vim VecAdd.cu

    3. ทำการ compile program ด้วยคำสั่ง :$nvcc -VecAdd.cu

      • ทำการ Run program ด้วยคำสั่ง :$ ./a.out ได้ผลลัพธ์ตามรูป


        Source Code
        [ VecAdd.cu]