ML MATLAB  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Вычисления на GPU

Тест проверяет тему «Вычисления на GPU» через чтение MATLAB-кода, математические модели и рабочие ситуации. Здесь важно не узнать знакомую команду, а предсказать результат, заметить скрытое допущение и выбрать проверку, которая различит близкие реализации.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. Время — 85 минут. Верный вариант в каждом вопросе один; после завершения доступны общий результат, профиль по 6 темам и объяснения.
Вопрос 1 из 30
Нужно реализовать действие: перенести числовой массив X на GPU, выполнить поэлементную операцию и вернуть компактный результат на CPU. Какой вариант выполняет его без подмены операции?
Вопрос 2 из 30
В расчёте по теме «Массивы на графическом процессоре» обнаружено содержательное расхождение. Какую замену следует принять после проверки?
MATLABФрагмент для рецензии
Xg = gpu(X); y=collect(sum(sin(Xg).^2));
Вопрос 3 из 30
Код по теме «Массивы на графическом процессоре» проходит обычный пример. Какая проверка покажет, что вычислительный договор сохраняется и на неудобном входе?
y=\sum_{ij}\sin^2(X_{ij})
MATLABКод и модель
Xg = gpuArray(X);
y = sum(sin(Xg).^2,"all");
y = gather(y);
Вопрос 4 из 30
Для действия «перенести числовой массив X на GPU, выполнить поэлементную операцию и вернуть компактный результат на CPU» нужен независимый математический эталон. Какая запись подходит?
Вопрос 5 из 30
Код копирует массив на GPU, сразу делает `gather`, а затем выполняет всю работу на CPU. Какое действие даст проверяемый результат?
Вопрос 6 из 30
В расчёте требуется проверить поддержку пользовательской функции на gpuArray до большого запуска. Какой вариант выполняет его без подмены операции?
Вопрос 7 из 30
Ниже приведена неудачная реализация из темы «Поддерживаемые операции». Какая редакция возвращает требуемый результат и оставляет независимый контроль?
MATLABФрагмент для рецензии
gpuDevice; customTransform(X);
Вопрос 8 из 30
Перед рецензентом рабочий фрагмент по теме «Поддерживаемые операции». Как проверить его так, чтобы близкая подмена не прошла вместе с ним?
customTransform:\ gpuArray\to gpuArray
MATLABКод и модель
Xg = gpuArray(single(rand(32)));
try
    Yg = customTransform(Xg);
    wait(gpuDevice);
catch ME
    error("GPU path unsupported: %s",ME.message);
end
Вопрос 9 из 30
Нужно формализовать операцию «проверить поддержку пользовательской функции на gpuArray до большого запуска». Какая запись подходит?
Вопрос 10 из 30
Ночная задача падает через час: редкая ветвь вызывает функцию, которая не поддерживает gpuArray. Какой порядок работы не скроет причину ошибки?
Вопрос 11 из 30
На рецензию вынесена операция: избежать повторной передачи одной матрицы коэффициентов A на GPU внутри цикла. Какой вариант выполняет его без подмены операции?
Вопрос 12 из 30
В тесте «Вычисления на GPU» показанный фрагмент нарушает правило из темы «Передача памяти». Какая редакция исправляет причину, а не только её проявление?
MATLABФрагмент для рецензии
for k=1:K, Xg(:,k)=gpuArray(A\B(:,k)); end
Вопрос 13 из 30
Фрагмент по теме «Передача памяти» выглядит правдоподобно. Какая проверка действительно подтвердит заявленное свойство, а не только отсутствие сбоя?
D_{transfer}=|A|+|B|+|X|\quad\text{вместо}\quad K|A|
MATLABКод и модель
Ag = gpuArray(A);
Bg = gpuArray(B);
Xg = zeros(size(B),"like",Ag);
for k=1:K
    Xg(:,k) = Ag \ Bg(:,k);
end
X = gather(Xg);
Вопрос 14 из 30
Перед реализацией требования «избежать повторной передачи одной матрицы коэффициентов A на GPU внутри цикла» записывают модель. Какая запись подходит?
Вопрос 15 из 30
Профилировщик GPU показывает, что ядра быстры, но время доминирует копирование A для каждого столбца. Что следует сделать до принятия расчёта?
Вопрос 16 из 30
Условие задачи — корректно измерить время асинхронной GPU-операции. Какой вариант выполняет его без подмены операции?
Вопрос 17 из 30
Для темы «Измерение ускорения» в тесте «Вычисления на GPU» приведён дефектный блок. Какое замечание рецензента можно принять?
MATLABФрагмент для рецензии
elapsed=timeit(@() fft(Xg));
Вопрос 18 из 30
Ниже показано решение из темы «Измерение ускорения». Какой контроль отличит его от ближайшей ошибочной реализации?
T_{measured}=T_{kernel}+T_{sync}
MATLABКод и модель
g = gpuDevice;
wait(g);
t = tic;
Yg = fft(Xg);
wait(g);
elapsed = toc(t);
Вопрос 19 из 30
Проверка кода для задачи «корректно измерить время асинхронной GPU-операции» опирается на формулу. Какая запись подходит?
Вопрос 20 из 30
Отчёт показывает микросекунды для тяжёлого FFT, потому что таймер остановлен до фактического выполнения на устройстве. Какое решение оставит независимый критерий проверки?
Вопрос 21 из 30
Фрагмент должен сохранить переносимость алгоритма между CPU и GPU без проверки класса в каждой математической строке. Какой вариант выполняет его без подмены операции?
Вопрос 22 из 30
Показанный код из темы «Совместимость и переносимость» не соответствует постановке. Какая редакция восстанавливает вычислительный договор?
MATLABФрагмент для рецензии
if isa(input,"gpuArray"), Z=gpuArray.zeros(size(input)); else, Z=zeros(size(input)); end
Вопрос 23 из 30
Результат фрагмента по теме «Совместимость и переносимость» нужно принять перед включением в расчёт. Какая проверка даст независимое основание?
type(Z)=type(input)
MATLABКод и модель
prototype = input;
Z = zeros(size(input),"like",prototype);
Z = coreAlgorithm(input,Z);
Вопрос 24 из 30
Математическая запись должна описывать действие «сохранить переносимость алгоритма между CPU и GPU без проверки класса в каждой математической строке». Какая запись подходит?
Вопрос 25 из 30
CPU-путь проходит, а GPU-путь падает при присваивании результата в заранее выделенный double на CPU. Какой вариант переносится на граничные данные?
Вопрос 26 из 30
Разработчик переносит в MATLAB требование: проверить численную эквивалентность CPU- и GPU-результатов с учётом класса single. Какой вариант выполняет его без подмены операции?
Вопрос 27 из 30
Рецензент разбирает фрагмент по теме «Стратегия тестирования» в тесте «Вычисления на GPU». Какой вариант исправляет саму операцию?
MATLABФрагмент для рецензии
assert(norm(Ycpu)==norm(Ygpu));
Вопрос 28 из 30
Для решения по теме «Стратегия тестирования» выбирают контрольный опыт. Какой вариант проверяет смысл операции, а не внешние признаки результата?
\delta=\frac{\|Y_{cpu}-Y_{gpu}\|}{\max(1,\|Y_{cpu}\|)}<10^{-5}
MATLABКод и модель
Ycpu = core(single(X));
Ygpu = gather(core(gpuArray(single(X))));
rel = norm(double(Ycpu-Ygpu),"fro")/max(1,norm(double(Ycpu),"fro"));
assert(rel < 1e-5);
Вопрос 29 из 30
Для операции «проверить численную эквивалентность CPU- и GPU-результатов с учётом класса single» фиксируют вычислительный договор. Какая запись подходит?
Вопрос 30 из 30
Побитовое сравнение падает после обновления драйвера, хотя инженерные показатели не изменились. Что уменьшит риск повторения дефекта?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу