猿代码 — 科研/AI模型/高性能计算
0

深度学习框架darknet源码分析,cuda_gridsize

摘要: 1)../include/darknet.h:9: #define BLOCK 512定义线性块大小2)dim3 cuda_gridsize(size_t n){ size_t k = (n-1) / BLOCK + 1; size_t x = k; size_t y = 1; if(x 65535){ x = ceil(sqrt(k)); y = (n- ...
1)
../include/darknet.h:9:    #define BLOCK 512
定义线性块大小

2)
dim3 cuda_gridsize(size_t n){
    size_t k = (n-1) / BLOCK + 1;
    size_t x = k;
    size_t y = 1;
    if(x > 65535){
        x = ceil(sqrt(k));
        y = (n-1)/(x*BLOCK) + 1;
    }
    dim3 d = {x, y, 1};
    //printf("%ld %ld %ld %ld\n", n, x, y, x*y*BLOCK);
    return d;
}

cuda_gridsize
把一个数字转换成3维向量。
3)
    int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
    if (index >= N) return;
    int b = index / spatial;
    int i = index % spatial;
    int f;
    float sum = 0;
    for(f = 0; f < filters; ++f){
        int index = b*filters*spatial + f*spatial + i;
        sum += powf(x[index], 2);
    }
这个地方spatial不知道是啥意思,
filters大概是滤波器的意思


说点什么...

已有0条评论

最新评论...

本文作者
2023-11-4 17:07
  • 0
    粉丝
  • 212
    阅读
  • 0
    回复
资讯幻灯片
热门评论
热门专题
排行榜
Copyright   ©2015-2023   猿代码-超算人才智造局 高性能计算|并行计算|人工智能      ( 京ICP备2021026424号-2 )