本文整理汇总了Python中numba.cuda.grid方法的典型用法代码示例。如果您正苦于以下问题:Python cuda.grid方法的具体用法?Python cuda.grid怎么用?Python cuda.grid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类numba.cuda
的用法示例。
在下文中一共展示了cuda.grid方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iterSearch
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def iterSearch(padu, padv, paddistorted, resultImg, maxIter, precision, resultMsk):
H = padu.shape[0] - 1
W = padu.shape[1] - 1
start_x, start_y = cuda.grid(2)
stride_x, stride_y = cuda.gridsize(2)
for xr in range(start_x, W, stride_x):
for yr in range(start_y, H, stride_y):
i,j = iterSearchShader(padu, padv, xr, yr, maxIter, precision)
if(i != -1) and (j != -1):
resultImg[yr, xr,0] = biInterpolation(paddistorted[:,:,0], i, j)
resultImg[yr, xr,1] = biInterpolation(paddistorted[:,:,1], i, j)
resultImg[yr, xr,2] = biInterpolation(paddistorted[:,:,2], i, j)
else:
resultMsk[yr, xr] = 255
示例2: iterSearchGrey
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def iterSearchGrey(padu, padv, paddistorted, resultImg, maxIter, precision, resultMsk):
H = padu.shape[0] - 1
W = padu.shape[1] - 1
start_x, start_y = cuda.grid(2)
stride_x, stride_y = cuda.gridsize(2)
for xr in range(start_x, W, stride_x):
for yr in range(start_y, H, stride_y):
i,j = iterSearchShader(padu, padv, xr, yr, maxIter, precision)
if(i != -1) and (j != -1):
resultImg[yr, xr] = biInterpolation(paddistorted[:,:], i, j)
else:
resultMsk[yr, xr] = 255
示例3: _cu_arange
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def _cu_arange(ary, count):
i = cuda.grid(1)
if i < count:
ary[i] = i
示例4: mat3_mul_kernel
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def mat3_mul_kernel(m0, m1, out):
i, j = cuda.grid(2)
m0_mat = m0[i, j, :, :]
m1_mat = m1[i, j, :, :]
out_mat = out[i, j, :, :]
mat3_mul(m0_mat, m1_mat, out_mat)
# cuda.syncthreads()
示例5: mat3_mul_vec_kernel
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def mat3_mul_vec_kernel(m, v, out):
i, j = cuda.grid(2)
m_mat = m[i, j, :, :]
v_vec = v[i, j, :]
out_vec = out[i, j, :]
mat3_vec3_mul(m_mat, v_vec, out_vec)
# TEST
示例6: calc_nrst_dist_gpu
# 需要导入模块: from numba import cuda [as 别名]
# 或者: from numba.cuda import grid [as 别名]
def calc_nrst_dist_gpu(gids,xs,ys,densities):
from numba import cuda, float64,float32
@cuda.jit
def calc_nrst_dist_cuda(gids,xs,ys,densities,nrst_dists,parent_gids,n):
'''
Numba Cuda code for calculate nearest point with higher density.
gids: identifier of geometry
xs: lons' array
ys: lats' array
densities: densities' array
nrst_dists: results of the nearest distance
parent_gids: results of gid of the nearest point with higher density
n: array size
'''
i=cuda.grid(1)
if i<n:
xi=xs[i]
yi=ys[i]
density=densities[i]
nrst_dist=float32(1e100)
parent_gid=np.int(-1)
for j in range(n):
xd=xs[j]-xi
yd=ys[j]-yi
gidd=gids[j]
distpow2=xd**2+yd**2
if densities[j]>density and distpow2<nrst_dist:
nrst_dist=distpow2
parent_gid=gidd
nrst_dists[i]=math.sqrt(float64(nrst_dist))
parent_gids[i]=parent_gid
n=xs.shape[0]
xs=np.ascontiguousarray((xs-xs.min()).astype(np.float32))
ys=np.ascontiguousarray((ys-ys.min()).astype(np.float32))
threadsperblock = 1024
blockspergrid = np.int((n + (threadsperblock - 1)) / threadsperblock)
dev_nrst_dists=cuda.device_array(n)
dev_parent_gids=cuda.device_array_like(gids)
calc_nrst_dist_cuda[blockspergrid,threadsperblock](cuda.to_device(np.ascontiguousarray(gids))\
,cuda.to_device(xs),cuda.to_device(ys),cuda.to_device(np.ascontiguousarray(densities))\
,dev_nrst_dists,dev_parent_gids,n)
return (dev_nrst_dists.copy_to_host(),dev_parent_gids.copy_to_host())