Можно использовать nvprof для доступа/чтения счетчиков конфликтов банка для CUDA exec:
nvprof --events shared_st_bank_conflict,shared_ld_bank_conflict my_cuda_exe
Однако это не работает для кода, который использует OpenCL, а не код CUDA.
- Есть ли способ извлечь эти счетчики за пределы
nvprof
из среды OpenCL, может быть, прямо из ptx? - В качестве альтернативы есть ли способ преобразовать сборку PTX, сгенерированную компилятором nvidia OpenCL с использованием
clGetProgramInfo
сCL_PROGRAM_BINARIES
, в ядро CUDA и запустить его с использованиемcuModuleLoadDataEx
и, таким образом, иметь возможность использоватьnvprof
? - Есть ли какой-либо бэкенд ЦП для моделирования, который позволяет устанавливать такие параметры, как размер банка и т. Д.?
Дополнительный вариант:
- Используйте конвертер кода opencl в код cuda, включая функции, отсутствующие в CUDA, такие как vloadn/vstoren, float16 и другие различные средства доступа.
#define
работают только для простых ядер. Есть ли какой-либо инструмент, который обеспечивает это?
cuModuleLoadDataEx
? Нет никакой гарантии, что одна и та жеptxas
компиляция из PTX в SASS будет такой же, но это разумное предположение. Возможные вариантыptxas
отличаются от OpenCL и CUDA (например, правила округления). Нет никакой гарантии, что вы будете профилировать одни и те же программы, но, возможно, это хорошее приближение. - person Tim   schedule 20.10.2020