Профилировщик nvvp и nsight дает другой результат?

Хочу попробовать инструкцию gst_inst_128bit. В той же программе nvvp выдает много выполненных команд gst_inst_128bit. В профайлере nsight получается 4 раза инструкция gst_inst_32bit. У них должна быть одна и та же программа. Как могла такая ситуация?

Эксперимент проводился на Linux, CUDA 5.0, GTX 580. Программа только копирует данные из одного массива в другой в функции ядра: In main:

cudaMalloc((void**)&dev_a, NUM * sizeof(float));
cudaMalloc((void**)&dev_b, NUM * sizeof(float));
kernel<<<grid,block>>>((uint4 *)dev_a, (uint4 *)dev_b);

ядро:

__global__ void kernel(uint4 *a, uint4 *b){
        unsigned int id = blockIdx.x * THREAD_NUM + threadIdx.x;
        for(unsigned int i = 0;i < LOOP/4;i++){
                b[id + i * GRID_NUM * THREAD_NUM] = a[id + i * GRID_NUM * THREAD_NUM];
        }
        return;

person worldterminator    schedule 10.01.2013    source источник
comment
Это линукс? nsight может создавать отладочную версию кода вместо версии выпуска. Вы должны внимательно проверить, как строится nsight, чтобы увидеть, соответствует ли командная строка nvcc тому, что вы делаете при автономной сборке для nvvp. В отладочной версии кода обычно добавляются ключи -g -G, которые могут кардинально изменить внутренний код.   -  person Robert Crovella    schedule 10.01.2013
comment
Это код версии выпуска. Сначала я использую nsight для профилирования моей программы, а затем nvvp. Это должен быть один и тот же исполняемый файл.   -  person worldterminator    schedule 10.01.2013
comment
Можете ли вы доказать, что NVVP и Nsight Eclipse Edition запускают один и тот же исполняемый файл (без перестроек), а инструменты запускают один и тот же исполняемый файл nvprof? Вы можете использовать / proc, чтобы увидеть эту информацию.   -  person Greg Smith    schedule 11.01.2013


Ответы (1)


Профилировщик в Nsight EE и автономный Visual Profiler в Linux основаны на одной и той же кодовой базе. Пожалуйста, убедитесь:

  1. Вы используете тот же исполняемый файл.
  2. Нет разницы в значениях переменных среды (например, LD_LIIBRARY_PATH).

Обратите внимание, что пользовательский интерфейс запуска Nsight EE может немного сбивать с толку. Когда вы нажимаете «Профиль» после отладки отладочной сборки, он может фактически запустить профилирование исполняемого файла отладки, пытаясь сохранить все настраиваемые параметры запуска (например, аргументы командной строки, рабочую папку и т. Д.), Которые вы могли настроить. В главном меню выберите Выполнить -> Конфигурации профиля ..., чтобы увидеть настройки, которые Nsight использует при профилировании вашего приложения.

person Eugene    schedule 11.01.2013