目前,我在cuda c中制作了一个神经网络程序.因为我需要操纵矩阵乘法,所以我没有将CUBLAS用于MM.我为MM使用以下代码.我想知道是否有人有一些建议让它更快,这可能非常有用,因为我需要在学习期间使用MM数百万次.谢谢.这是MakeFile:
# cuda root
_CUDA_ROOT_ = /usr/local/cuda
NVCC = nvcc
# include and lib paths
INCLUDES=-I${_CUDA_ROOT_}/include
LIB_PATH=-L${_CUDA_ROOT_}/lib64
# libraries to link against
LIB= -lcudart -lcublas
CU_SRC= main.cu
EXE=$(CU_SRC:.cu=)
#------------------------------
# Choose your gpu arch
SM = sm_35
all: $(EXE)
$(EXE): $(CU_SRC)
$(NVCC) -arch $(SM) $(CU_SRC) -o $(EXE) $(LIB_PATH) $(LIB)
clean:
rm -f *.o *.cu_o $(EXE)
Run Code Online (Sandbox Code Playgroud)
这是MM代码:
__global__
void matrixMulti(float* A_d, float* B_d, float* C_d, int m, int k, int n)
{
__shared__ float ds_A[TILE_WIDTH][TILE_WIDTH];
__shared__ float ds_B[TILE_WIDTH][TILE_WIDTH];
int col …Run Code Online (Sandbox Code Playgroud)