Распределение памяти GPU - PullRequest
1 голос
/ 22 февраля 2012

Я очень новичок во всем этом (начался на этой неделе), так что будьте добры :) Мне нужно выяснить, как распределяется моя память на моей видеокарте. Я использую процессор Intel Xeon с 6 ядрами и графическую карту Tesla C2050. Как узнать размер глобальной, общей, локальной, постоянной и текстурной памяти? Я пытался использовать код deviceQuery, который некоторые загрузили, но на данный момент я не могу скомпилировать какой-либо код cuda. ​​

заранее спасибо

1 Ответ

2 голосов
/ 23 февраля 2012
#include "cuda_runtime.h"
#include "device_launch_parameters.h"

#include <stdio.h>


int main( void ) {
cudaDeviceProp  prop;

int count;

cudaGetDeviceCount( &count );
printf("This machine has %d CUDA devices availiable for harvesting \n\n", count);
for (int i=0; i< count; i++) {

    cudaGetDeviceProperties( &prop, i );
    printf( "   --- General Information for device %d ---\n", i );
    printf( "Name:  %s\n", prop.name );
    printf( "Compute capability:  %d.%d\n", prop.major, prop.minor );
    printf( "Clock rate:  %d\n", prop.clockRate );
    printf( "Device copy overlap:  " );
    if (prop.deviceOverlap)
        printf( "Enabled\n" );
    else
        printf( "Disabled\n");
    printf( "Kernel execution timeout :  " );
    if (prop.kernelExecTimeoutEnabled)
        printf( "Enabled\n" );
    else
        printf( "Disabled\n" );

    printf( "   --- Memory Information for device %d ---\n", i );
    printf( "Total global mem:  %ld\n", prop.totalGlobalMem );
    printf( "Total constant Mem:  %ld\n", prop.totalConstMem );
    printf( "Max mem pitch:  %ld\n", prop.memPitch );
    printf( "Texture Alignment:  %ld\n", prop.textureAlignment );

    printf( "   --- MP Information for device %d ---\n", i );
    printf( "Multiprocessor count:  %d\n",
        prop.multiProcessorCount );
    printf( "Shared mem per mp:  %ld\n", prop.sharedMemPerBlock );
    printf( "Registers per mp:  %d\n", prop.regsPerBlock );
    printf( "Threads in warp:  %d\n", prop.warpSize );
    printf( "Max threads per block:  %d\n",
        prop.maxThreadsPerBlock );
    printf( "Max thread dimensions:  (%d, %d, %d)\n",
        prop.maxThreadsDim[0], prop.maxThreadsDim[1],
        prop.maxThreadsDim[2] );
    printf( "Max grid dimensions:  (%d, %d, %d)\n",
        prop.maxGridSize[0], prop.maxGridSize[1],
        prop.maxGridSize[2] );
    printf( "\n" );
   }
}

Код взят (и слегка изменен) из Cuda по Примеру .Меня устраивает.Какие сообщения об ошибках вы получаете, когда пытаетесь скомпилировать?

...