1) Тогда как мне предоставить калькулятору занятости количество регистров для каждого потока и общую память для каждого блока?
Единственное, что нужно, это округление (при необходимости) вывода ptxas до равномерной детализации распределения регистров, которая зависит от устройства (см. ответ Грега здесь) не иметь таблицы детализации распределения регистров по вычислительным возможностям.
Я думаю, что общая память также имеет гранулярность распределения. Поскольку максимальное количество блоков потоков на SM в любом случае ограничено, это должно иметь значение (для занятости), только если ваше распределение/использование находится в пределах гранулярной суммы превышения предела для любого количества блоков, которым вы в противном случае ограничены.
Я думаю, что в большинстве случаев вы получите довольно хорошее представление, используя числа из ptxas без округления. Если вы чувствуете, что вам нужен такой уровень точности в калькуляторе занятости, задав хороший направленный вопрос, например «Какова степень детализации распределения регистров и общей памяти для различных графических процессоров», вы можете получить четкий ответ от кого-то вроде Грега.
2) В моей программе я также использую вызовы тяги, которые генерируют код ptx. У меня есть 2 ядра, но я также вижу функции тяги для создания ptx. Поэтому я также учитываю эти числа, когда подсчитываю общее число. регистров я использую? (думаю да!) (то же самое относится и к общей памяти)
В принципе, я считаю, что это мышление неверно. Единственное место, где я мог видеть, где это может иметь значение, - это если вы используете параллельные ядра, и я сомневаюсь, что это так, поскольку вы упомянули тягу. Единственные цифры, имеющие значение для занятости, — это показатели для одного запуска ядра. Вы не добавляете потоки, регистры или разделяемую память между разными ядрами для расчета использования ресурсов. Когда ядро завершает выполнение, оно освобождает использование своих ресурсов, по крайней мере, для этих типов ресурсов (регистры, разделяемая память, потоки).
person
Robert Crovella
schedule
02.05.2014