小编stg*_*stg的帖子

为什么我的cuda C代码单精度不会变得更快?

费米生成GPU的单精度计算应该比双精度快2倍.然而,虽然我将所有声明'double'重写为'float',但我没有加快速度.前面有什么错误吗 编译选项等..?

GPU:Tesla C2075操作系统:win7 pro编译器:VS2013(nvcc)CUDA:v.7.5命令行:nvcc test.cu

我写了测试代码:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<conio.h>

#include<cuda_runtime.h>
#include<cuda_profiler_api.h> 
#include<device_functions.h>
#include<device_launch_parameters.h>

#define DOUBLE 1

#define MAXI 10

__global__ void Kernel_double(double*a,int nthreadx)
{
    double b=1.e0;
    int i;
    i = blockIdx.x * nthreadx + threadIdx.x + 0;
    a[i] *= b;
}
__global__ void Kernel_float(float*a,int nthreadx)
{
    float b=1.0F;
    int i;
    i = blockIdx.x * nthreadx + threadIdx.x + 0;
    a[i] *= b;
}

int main()
{
#if DOUBLE
    double a[10];
    for(int i=0;i<MAXI;++i){
        a[i]=1.e0;
    }
    double*d_a;
    cudaMalloc((void**)&d_a, sizeof(double)*(MAXI)); …
Run Code Online (Sandbox Code Playgroud)

c cuda

1
推荐指数
1
解决办法
530
查看次数

标签 统计

c ×1

cuda ×1