2016-09-14 2 views
4

내가 한 줄이 나를 혼란 this notebook에서 GPU에 파이썬 계산을 가속화하는 방법을 학습했다 : 여기파이썬 대괄호 : FUNC [...] (...)

mandel_kernel[griddim, blockdim](-2.0, 1.0, -1.0, 1.0, d_image, 20) 

mandel_kernel은 장식 된 (cuda.jit으로) 함수이고 griddimblockdim은 길이가 2 인 튜플 인 : griddim=(32,16), blockdim=(32,8)입니다.

이 대괄호는 파이썬 구문의 함수 이름과 인수 목록 부분 사이에 있습니까? 아니면 cuda.jit 장식과 관련된 것입니까?

답변

5

이, 내가 당신을 위해 그것을 무너 뜨리는 유효한 파이썬 구문 노력하겠습니다된다

mandel_kernel 누구의 키 2 튜플 (griddim, blockdim) 및 값이다하는 방법 (때문에 유효한 DICT이다 방법은 파이썬의 객체)

mandel_kernel[griddim, blockdim] 때문에 '리턴'(또는 때문에 인수를 괄호 안에있는 무엇 이건 그 메소드를 호출)에 평가하는 방법

mandel_kernel[griddim, blockdim](-2.0, 1.0, -1.0, 1.0, d_image, 20). 답장을

key = tuple(griddim, blockdim) 
method = mandel_kernel[key] 
method(-2.0, 1.0, -1.0, 1.0, d_image, 20) 
+0

감사 :

이 하나 개의 라인과 같이 세 줄에 다시 작성할 수 있습니다. 'mandel_kernel' 함수를 dict로 바꾸는 것은 decorater입니다. 그렇죠? – Jason

+0

아니요, 단지'function'' values'를 사용하는 정상적인'dict'입니다 –

+0

Yes/no, [@ cuda.jit]에 대한 문서 (http://numba.pydata.org/numba-doc/dev/cuda- reference/kernel.html? highlight = cuda.jit # numba.cuda.jit)는 [__getitem__] (https://github.com/numba/numba/blob/a3421beba7b3abc23357f78a5c416cb4ab3a49d4/)을 가진'AutoJitCUDAKernel' 객체를 반환한다고 알려줍니다. numba/cuda/compiler.py # L292) 메소드를 호출하므로 dict' – iCart