Professional Documents
Culture Documents
Cuda Nhapmon
Cuda Nhapmon
nh ngha:
CUDA ngha l Compute Unified Device Architecture l 1 kin trc phn mm v
phn cng cho mc ch pht trin tnh ton trn GPU. Trong h thng a nhim
vic s dng GPU trong vic tnh ton (Lp trnh CUDA) v ha c th xy ra ng
thi.
Phn mm cn thit:
Cuda SDK version2.0 c th dng cho windows XP 32-bit hoc 64-bit.
Trong windows bn cn s dng chng trnh Microsoft Visual C++ 2005 vit 1 d
n CUDA
Tham kho:
Ti site ny c th tham kho cc ti liu lien quan n cuda s dng ting anh
http://forums.nvidia.com/index.php?showtopic=36286
Ti site ny c th tham kho cc ti liu lien quan n cuda s dng ting nht
http://www.nvidia.co.jp/object/cuda_home_jp.html.
Figure 1
1. Tip theo 1 site NVIDIA Driver Download s xut hin v bn click vo text click
here download.Figure 2.
Figure 2
Hp thoi File Download xut hin v bn click Save. Figure 3.
Save
Figure 3
Figure 4
Figure 5
Click Next chng trnh load cc file cn ci t,
Click Next chng trnh ci t t ng (Figure 6).
Figure 6
Ch trong giy lt, sau khi chng trnh ci t xong bn click Finish khi ng
my li.
Ci t CUDA Toolkit.
Figure 7
2.
Click button Next ci t chng trnh. Tip theo bn chn I accept the
terms of license Agrement v click Next.bc ny c thc hin tng t bc 2
ca cch install file Toolkit.
3.
Chng trinh s hi mt s thng tin ca bn. Bn cn phi in tn vo
textbox Name. in tn cng ty hoc t chc vo Textbox Organization, v in
a ch Email ca bn vo Email(Optional).(Figure 8)
Name
Organization
Email
Next
Figure 8
4.
Click Next tip tc. chng trnh s yu cu bn ch r ni bn mun ci
t (theo ti bn nn ch default C:\Program Files\NVIDIA
Corporation\NVIDIA CUDA SDK) ri click Next tip tc qua bc tip theo.
5.
Click Install ci t phn mm sau khi qua cc bc m chng trnh
Install Shied Wizard hng dn. ch 1 vi pht sau khi chng trnh ci t
xong bn click Finish kt thc vic ci t.
Hu ht cc chng trnh cuda mu c NVIDIA cung cp chy trn nn Visual C++.
V th bn cn phi c phn mm Microsoft Visual C++, c th dng bng Microsoft
Visual Studio C++ Express,c cung cp min ph.
Sau khi hon tt vic ci t, bn c th m d n mu deviceQuery ca NVIDIA
cung cp trong C:\Program Files\NVIDIA Corporation\NVIDIA CUDA
SDK\bin\win32\Release v chy th, nu thnh cng chng trnh s hin th cu
hnh card GPU ca bn v hin th thong bo TEST
3. Cch ci t chng trnh Visual profiler
Visual profiler c cung cp bi NVIDIA dng phn tch v nh gi 1 chng trnh
cuda.
Download visual profiler t site: http://www.nvidia.com/object/cuda_get.html#windows.
Trong site ny bn s tm thy dng text Cuda Visual Profiler trong bng Cuda for
Windows(hnh 4.9).
Vic download chng trnh ny tng t nh bc 7,8,9 ca mc 4.1.1.
Sau bn extract file CudaVisualProfiler_0.2_beta_windows.zip
Sau khi extract s xut hin folder CudaVisualProfiler trong cha 2 folders bin v
Projects.
Folder project s cha thng tin ca 1 d n cuda sau khi c phn tch.
Folder bin cha cc file *.dll v 1 file cudaprof.exe y l file chng trnh Cuda
Visual Profiler.
Chy chng trnh Cuda Visual Profiler bng cch double click vo file cudaprof.exe
(Figure 9).
Figure 9
Chng trnh ny s hot ng m khng cn phi ci t.
4. To highlighting cho syntax ca 1 file cuda (*.cu)
1 file ngun cuda c m rng bng *.cu. nu bn dng Microsoft Visual C++ m
file ny th n s hin th dng file text (s khng trc quan bi v cc bin, tu kha u
l mu en.) tng kh nng trc quan cho chng rnh d quan st. NVIDIA cung
cp 1 file nhng vo Microsoft Visual C++ file *.cu hin th trc quan di Microsoft
Visual C++ nh 1 file *.cpp.
1. Bn vo ng dn C:\Program Files\NVIDIA CUDA
SDK\doc\syntax_highlighting\visual_studio_8 v copy file
usertype.dat vo C:\Program Files\Microsoft Visual Studio 8\Common7\IDE.
2. Tip theo bn vo menu tool ->options trong hp thoi Options bn vo Text
Editor->File Extension (hnh 4.15).
Pha bn phi hp thoi trong Extension: text bn g vo cu (tn m rng ca
chng trnh cuda)
3. Tip theo trong listbox Editor: bn chn Microsoft Visual C++ (mi trng hot
ng ca cuda file).
Sau bn click button Apply and then click OK.khi ng li Microsoft Visual
studio hon tt (Figure 10).
(3)
(2)
Figure 10
By gi bn hon tt vic lm highlighting 1 file *.cu, lm chng trnh sang sa d
c hn
5. Cch thit lp 1 d n CUDA trn Microsoft Visual C++ 2005
Nhng phn trc gii thiu cc ci t lien quan n 1 d n CUDA.trong mc 4.4 gii
thiu cch hot ng 1 chng trnh mu c NVIDIA SDK cung cp km theo. Tuy nhin
bn c th chy bt c chng trnh mu no ca NVIDIA SDK cung cp.
Trong phn ny s ch ra phng php to t mnh to ra 1 d n CUDA.
n gin ta s to 1 d n console
Figure 11
Name
Figure 12
Tip theo cn to 1 file cha m ngun cho 1 chng trnh cuda, file ny s c
m rng bng .cu tng t nh bc 2 bn
vo ca s Solution Explorer click phi vo Header Files->Add->New Item hp
thoi Add new Item- CudaStep1 hin th. Tip theo bn vo Visual C++->Utility
chn Text File (.txt) v t tn l CudaFunction.cu ri click Add.
Cho n lc ny bn to ra 1 d n cuda, nhng chng trnh vn cha hot
ng c v bn cha vit code cho chng trnh. m t hot ng chng
trnh ta cn 1 chn trnh nh x l 1 matrix gm 32 phn t. hm cuda s c
nhim v tng gi tr 1 phn t ln 1 n v
//kernel function
{
//s th t block trn 1 grid
int bx = blockIdx.x;
//s th t thread trn 1 block
int tx = threadIdx.x;
//s th t thread trn 1 grid
int tid = bx * XTHREADS + tx;
//tnh ton data
data[tid] = data[tid]+1;
//ng b cc thread
__syncthreads();
}
Bin dch chng trnh: bn c th bin dch chng trnh ny vi Win32 hoc
Win64, release, debug, emurelease, hoc emudebug Ty thuc vo cu hnh my
ca bn v ch bn mun build. Tuy nhin chng trnh s bo li v khng
compiler dc file CudaFunction.cu.
Bn cn download builrule t site
http://forums.nvidia.com/index.php?showtopic=30273 file cuda_build_rule.zip
vic download file ny tng t nh bc 8,9 ca mc 4.1.1.Vo Solution
Explorer click phi ln d n CudaStep1 chn Custom Build Rules hp
thoi Visual C++ Build Rule Files hin th click vo Find Existing bn chn
file cuda (file cuda build rules sau khi extract file cuda_build_rule.zip) v
click Open (Figure 13).
Figure 13
Figure 14
Figure 15
By gi th bin dch v chy chng trnh bn s thy kt qu hin ln mng
hnh console.
Gii thch code:
Trong file CudaStep1.cpp cha hm Main() v hm hin th display(). Trong hm
main() 1 matrix s c khi to v gn gi tr ban u l 9. Sau hm main()
cho hin th gia tr ca matrix chua tnh ton nay ln man hnh.
Tip theo chng trnh chnh s gi hm tnh ton (CudaProcessing()) ca device
v truyn matrix ny device tnh ton.
Sau khi tnh ton xong th hm main() s cho hin th kt qu ln mn hnh.
Trong file CudaFunction.cu s tn ti 2 hm.
dim3 dimBlock(XTHREADS,YTHREADS);
//khai bo s block trn 1 grid cn x l
dim3 dimGrid(XBLOCKS,YBLOCKS);
//gi chng trnh tnh ton kernel
CudaProcessingKernel<<<dimGrid,dimBlock>>>(deviceData,resultData);
//sau khi tnh ton xong d liu c tr v li cho b nh Host
cudaMemcpy(hostData, resultData, resutlSize, cudaMemcpyDeviceToHost);
//xa b nh tm thi trn Device
cudaFree(deviceData);
cudaFree(resultData);
}
//hm dng trong tnh ton data
__global__ void CudaProcessingKernel(type *data, type * result)
{
//s th t block trn 1 grid
int bx=blockIdx.x;
int by=blockIdx.y;
//s th t thread trn 1 block
int tx=threadIdx.x;
int ty=threadIdx.y
//copy data t global memory vo shared memory
__shared__ type sharedData[];
__shared__ type sharedResult[];
//ng b h thng m bo data c copy ln shared memory
__synchreads();
//tnh ton data da theo ch s ca thread
//ng b cc thread m bo data c tnh ton xong
__syncthreads();
}
hiu cch hot ng 1 chng trnh cuda ta cn thng nht 1 s cc khi nim sau.
Host: l nhng tc v v cu trc phn cng, phn mm c x l t CPU.
Driver: l nhng tc v v cu trc phn cng, phn mm c x l t GPU.
Figure 16
Cch hot ng c m t nh sau:
1) D liu cn c tnh ton lun trn b nh ca Host v vy bc 1 truyn d
Figure 17
2) Click OK hp thoi session settings xut hin. Vo laugh chn file trong d n
cuda m bn bin dch thnh cng (trong trng hp ny chn file
CudaStep1.exe) ri click Start chng trnh hot ng (Figure 18).
Figure 18
Figure 19
Nu thnh cng chng trnh s hin th 1 table cha cc thng s cn thit nh
gi 1 d n cuda. D liu thu c sau khi phn tch s c lu trong file Excel.
.