【发布时间】:2019-12-04 04:53:41
【问题描述】:
我希望使用 CUDA 提高我的 softmax 层的速度。由于缺乏 python 和 CUDA 的示例,我希望在这里得到一些建议。我已经建立了一个幼稚的实现并寻求相同的建议。
@cuda.jit
def softmax(X, w, b):
m = X.shape[0]
probs = np.zeros((m, 120))
startX=cuda.grid(2)
gridX=cuda.gridDim.x * cuda.blockDim.x;
for i in range(startX, m):
X_slice = X[i,:,:,:]
z = np.dot(X_slice,w).reshape(1, w.shape[-1])
z_exp = np.exp(z)
z_probs = z_exp/np.sum(z_exp)
probs[i,:] =z_probs
A_prev = (X, w, b)
return probs, A_prev
【问题讨论】:
-
我的建议是尝试运行您的代码,当它不可避免地不起作用时,返回一个您需要回答的具体问题。在此之前,我会引导您访问 Numba 文档的 this part