2009-12-24 4 views
5

У меня есть собеседование, появившееся через неделю для позиции начального уровня, которая включает в себя программирование в CUDA (надеюсь, с C).Вопросы для интервью по программированию CUDA?

Мне было интересно, может ли кто-нибудь предложить некоторые вопросы, которые я могу ожидать во время интервью.

Я прошел официальное руководство по программированию, но сейчас я не так уж удобен.

Спасибо.

+0

Вы пробовали написать что-то нетривиальное? Моделирование N-тела или что-то в этом роде? CUDA требует, чтобы вы тщательно планировали совместный доступ к памяти, чтобы получить от него какую-либо производительность. Без какого-либо практического опыта вас преследуют. – drxzcl

+0

К сожалению, нет. Моделирование N-тела и ilk слишком сложны для меня! Но я занимаюсь CUDA около 4-5 месяцев.Я написал несколько программ, чтобы хорошо понимать подпрограммы и архитектуру. – Gitmo

+0

Я не имею в виду конкретно N-тело, любая программа, которая использует сотрудничество с нитями, будет бонусом. Если нет, вы не получите никакого значительного увеличения производительности от GPU. N-тело - это просто (простой) пример, но другие тоже прекрасны. Матричное умножение, оценка матриц расстояний, такого рода вещи. Если вы попытаетесь узнать CUDA, запомнив руководство пользователя, вы сработаете и сгорите. – drxzcl

ответ

16

Некоторые вопросы, я думаю, вы должны подготовить следующие:

  • Сколько разного рода воспоминаний в ГПУ?
  • Что означает слияние/развязка?
  • Можете ли вы реализовать матрицу транспонирования ядра?
  • Что такое деформация?
  • Сколько последовательностей может работать одновременно внутри мультипроцессора?
  • В чем разница между блоком и потоком?
  • Могут ли потоки обмениваться данными между ними? и блоки?
  • Можете ли вы описать, как работает кеш?
  • В чем разница между общей памятью и регистрами?
  • Какие алгоритмы лучше работают на gpu? привязаны данные или привязаны к процессору?
  • Какие шаги вы выполнили в порт приложения в cuda?
  • Что такое барьер?
  • Что такое поток?
  • Опишите в деталях, что означает Заезд с ядрами?
  • Что означает структура массива против массива структур?
+0

@fabrizioM Спасибо большое! Это действительно очень полезно. Я могу ответить на большинство из них :) Чувствую себя немного уверенно сейчас. – Gitmo

+7

Предполагается, что это интервью не викторины. Вы хотите спросить то, что требует от них, чтобы показать, как поворачиваются колеса в голове, а не проверять, что они читают руководство пользователя. – drxzcl

3

Если это научная роль тогда ожидают вопросы по плавающей запятой и численной точности, в частности, вы должны смотреть на образце восстановления в NVIDIA SDK, так что иллюстрирует весь груз из пунктов в посте Фабрицио тоже.

5

«У вас есть N векторов длины M (N >> M). Расскажите мне, как бы вы хотели сконструировать ядро ​​для оценки матрицы расстояний. Обратите особое внимание на то, как проблема подразделяется и на способ использования резьбы может быть использован для улучшения занятости.

Как бы ваш ответ на этот вопрос изменился, если M >> N? "

Идея здесь заключается не в том, чтобы заставить вас писать код, а чтобы заставить вас задуматься вслух. Это показывает, что вы действительно знаете, как использовать технологию GPGPU, и не просто ругаетесь с руководством пользователя.

Смежные вопросы