我有GTX560。我今天买了GTX760。为什么下面的内核在 GTX760 上(~0.031ms)比 GTX560(~0.0232ms)慢。当我将 n 增加到 1000000 时,速度更快(约 25%),但对于较小的 n 则不然。我有两台电脑。第一个(内置 GTX560)是 Intel(R) Core(TM) i5 CPU、P7P55D-E LX、CUDA 5.0、Kubuntu 12.04。第二个(GTX760内),AMD FX(tm)-6300,主板760GA-P43(FX),CUDA 6.5 Kubuntu 14.04。但我仍然认为,原因不是由于不同的CPU等......
GTX560: nvcc -arch=sm_20 -fmad=false -O3 -o vecc vecc.cu -lm
GTX760: nvcc -arch=sm_30 -fmad=false -O3 -o vecc vecc.cu -lm
Run Code Online (Sandbox Code Playgroud)
我也尝试改变块大小,但没有根本效果。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// CUDA kernel. Each thread takes care of one element of c
__global__ void vecAdd(double *a, double *b, double *c, int n)
{
// Get our global thread ID
int id = …
Run Code Online (Sandbox Code Playgroud)