小编bel*_*lln的帖子

256 KB 的缓存大小真的是 256 KiB?

所以,我对整个 KB / KiB 概念感到困惑。我在数据表中读到特定 L2 缓存具有 256KB 容量。从其他来源我读到大小为 256 kB。

有时当人们写 KB 或 kB 时,他们的意思是 KiB,有时则不是。我对内存的有限了解使我相信缓存大小应该是两个字节的幂。

在缓存大小的上下文中,内存大小更可能是 256 000 字节还是 2^10*256=262 144 字节?

编辑:不是实际的数据表,但作为一个例子,看看这个 AMD 处理器上的 L1 缓存。

http://en.wikipedia.org/wiki/File:AMD_A64_Opteron_arch.svg

size caching memory-management

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

有条件的"#pragma omp critical {"

所以我想做这样的事情

#ifdef MYCOND
#define CR_BEGIN #pragma omp critical{
#define CR_END }
#else
#define CR_BEGIN 
#define CR_END 
#endif
Run Code Online (Sandbox Code Playgroud)

由于标签,GCC(4.8.2)不喜欢第2行.SO处的相关问题给出了答案"使用_Pragma("")",但在这种情况下它不起作用.

建议?

c c++ gcc openmp c-preprocessor

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

双打纹理对象

我想使用带双打的纹理对象(不是引用).使用浮点数时,下面的代码有效,但double不是受支持的数据类型.

我可以使用2d纹理解决这个问题,如果是这样,我该如何设置这样的纹理?

纹理引用有类似的问题,但纹理对象没有.在CUDA中支持纹理存储器中的双重类型

__global__ void my_print(cudaTextureObject_t texObject)
{
    printf("%f\n",tex1Dfetch<double>(texObject,0));

    return;
}

int main()
{

    double i = 0.35;
    int numel = 50;

    double* d_data;
    cudaMalloc(&d_data,numel*sizeof(double));
    cudaMemcpy((void*)d_data,&i,1*sizeof(double), cudaMemcpyHostToDevice);


    cudaTextureDesc td;
    memset(&td, 0, sizeof(td));

    td.normalizedCoords = 0;
    td.addressMode[0] = cudaAddressModeClamp;
    td.readMode = cudaReadModeElementType;


    struct cudaResourceDesc resDesc;
    memset(&resDesc, 0, sizeof(resDesc));
    resDesc.resType = cudaResourceTypeLinear;
    resDesc.res.linear.devPtr = d_data;
    resDesc.res.linear.sizeInBytes = numel*sizeof(double);
    resDesc.res.linear.desc.f = cudaChannelFormatKindFloat;
    resDesc.res.linear.desc.x = 32;

    cudaTextureObject_t texObject = 0;
    gpuErrchk(cudaCreateTextureObject(&texObject, &resDesc, &td, NULL));

    my_print<<<1,1>>>(texObject);

    gpuErrchk(cudaDeviceSynchronize());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

cuda

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

标签 统计

c ×1

c++ ×1

c-preprocessor ×1

caching ×1

cuda ×1

gcc ×1

memory-management ×1

openmp ×1

size ×1