OpenCL foCX

\


OpenCL foCX 1 ȏ̌vZjbg Computation Unit (CU) \ĂACU  1 ȏ̏Gg Processing Element (PE) \ĂBPEXbhƂB

傫̔r
Xbh(PE)  CU  foCX

XbhŎsJ[ĺAɈȉ 3 ނ̃ɃANZX\łB




(1)WX^(vCx[g)
	EJ[lŁu__private__vwqpĐ錾ꂽϐvCx[gƂĈB
	EXbhƂɓƗWX^Ƃėp\B
	EŒ჌CeVB
	EfoCX֐Ő錾ꂽʏ̕ϐ͊{IɃWX^֊蓖ĂB
	ECPU璼ړǂݏ邱Ƃ͂łȂB
	EGT200łCU16384{B
(2)L([J)
	EJ[lŁu__local__vwqpĐ錾ꂽϐLƂĈB
	ECŮeXbh͓ꃁƂėp\B
	EŒ჌CeVB
	ECPU璼ړǂݏ邱Ƃ͂łȂB
	EJ[lIƎIɉ
	Ebarrier(CLK_LOCAL_MEM_FENCE)CUXbhł
	EGT200ł͊eCU16KBB
(3)O[o(VRAM)
	EJ[lŁu__global__vwqpĐ錾ꂽϐO[oƂĈB
	EGPUŜŋL郁B
	ESCUASXbh瓯ꃁƂėp\B
	EAANZX(o[Xg])ł͍ōCeVB
	E_ANZXł͒ᑬōCeVB
	ECPUAPIĒlǂݏ邱ƂłB
	ECU܂Ńf[^ێ邱ƂłB
	Ê͎GDDR5ƌ镔

ŗp̐

VRAMrfI[foCX[O[o[GDDR5iANZXԒxj
L[@@1LbV@@[J[@ij
vCx[g[WX^@iԑj@

CfNX
J[lsہCzXgvOɂ n  (n = 1`3) ̒ۓIȃCfNXԂ`DCfNXԂ̊eWɂ͎\߂ n g̐lƁC[NACeƌĂ΂J[l̎sCX^X蓖ĂĂDɁC[NACe܂Ƃ߂̂[NO[vƌĂсC[NO[v܂Ƃ߂CfNXԑŜ̂Ƃ NDRange ƌĂԁD[NACeɊ蓖ĂĂ鐮lO[oID ƌĂсC[NO[vɊ蓖Ă鐮l[J ID ƌĂԁD̂悤ȃCfNXԂpvO~ÓCʓIɒɂ郋[vg񉻂ۂɗpDOpenCL ł͗\ߎsO n ~ m ̍WCꂼ̍W iCj ɑl^ĂCfNXԂpӂĂDɂ OpenCL ł́CΏۂ̍WsɌvZKvȂCs̍ۂɂ͂ꂼ̍WɑΉ[NACe񓯊ɌĂяoƂŁC񏈗ĂD




OpenCLOpenGL̈Ⴂ
iuO̐킩₷̂ňꕔςăRsy܂Bj

ꌾ
OpenCLƂOpen Computing Language ̗̂ŁCGPUȂǂŌvZs߂̊JiAPIQj
OpenGLOpen Graphics Library ̗̂ŁC3DȂǂGPUȂǂ̃ANZ[^ď邽߂̃CuQ

OpenCLƂ
GPUȂǂŌvZs߂̊J
X̃\tgEFÅJ҂񂷂ׂĂ̋@\[Ĵ͍Ŗʂߋʂ̃f[^`Ȃǂ߂Kł

OpenGLƂ
3DOtBbNX̂߂̃CuĩvOi̃t@Cɂ܂Ƃ߂́jłBCû͒PƂŎs邱Ƃ͂łÃvÖꕔƂē삷B


Agɂ
OpenCLŏf[^GPUDVI|[gďo͂邽߂ɂ́AOpenGLƘAgȂ΂܂B
OpenCLłł悤ɂĂꂽǂꂾ֗ȂƂBǂkhronos߂ĂzȂ̂ŁA݂ɊȂ悤ɂĂ̂A͂܂ʓ|Ȃ̂AƈႤR̂B

g̃C[WƂẮC܂OpenGLDIɗグ܂B
̎AWindowsł͎gfBXvCƂɃfoCXReLXgƂ̂̂ŁA擾܂B
ŁAOpenGLŃfoCXƕ`֘At郌_OReLXg𗧂グ܂B
ŁAsNZtH[}bgiEBhȄڍאݒ݂ȁĵ߂āA܂B
OpenGLŗグReLXgobt@OpenCL̂Ɗ֘At܂B
̂Ƃ֘AtłȂ΁AOpenCLOpenGLꂼPƂňĂAg͂łȂƂɂȂ܂B
Âm[gp\R̃I{[hƂ̂悤ȌۂN܂B
