2016-11-05 8 views
3

This link говорит, что подпрограммы cuBLAS-XT обеспечивают работу вне ядра - размер данных операнда ограничен только размером системной памяти, а не объемом встроенной памяти GPU. Это означает, что до тех пор, пока входные данные могут быть сохранены в памяти процессора, а размер вывода больше, чем размер памяти GPU, мы можем использовать функции cuBLAS-XT, правильно?Использование cuBLAS-XT для большого размера ввода

С другой стороны, this link говорит: «В случае очень больших проблем API-интерфейс cublasXt предлагает возможность выгрузить часть вычислений в центральный процессор хоста» и «Currenty», только подпрограмма cublasXtgemm() поддерживает эту функцию . является ли это в случае проблем, размер входного сигнала больше, чем размер памяти CPU?

Я не понимаю разницу между этими двумя! Я признателен, если кто-то помогает мне понять разницу.

+0

http://stackoverflow.com/a/14558198/681865 – talonmies

ответ

4

цель cublasXt позволяет автоматически запускать операции на нескольких графических процессорах. Так, например, умножение матрицы или другие поддерживаемые операции могут выполняться на нескольких графических процессорах.

Процедура cublasXtgemm имеет специальную способности к, что в дополнении к распараллеливанию матрицы многократно через 2 или более графических процессоров, он также может распараллелить его через 2 или более графических процессоров PLUS использовать центральный процессор в качестве дополнительного вычислительного двигателя ,

Проблема с матричной матрицей легко разлагается, как обсуждалось here. Если вы запустите все «куски» работы только с графическими процессорами, это обычная возможность cublasXtgemm (просто использовать графические процессоры). Если вы запустите все, кроме одного, куски работы на графических процессорах и запустите один из кусков работы на CPU, то есть специальный.

+0

Спасибо за ответ, я работаю только с одним графическим процессором, и я заинтересован в использовании cublasXT на основе того, что в первой ссылке говорится «размер данные операнда ограничены размером системной памяти, а не объемом встроенной памяти GPU ». Поэтому мой вопрос заключается в том, хочу ли я использовать другую функцию, такую ​​как cublasXtSsyrk (размер ввода - nxk и размер вывода в nxn), и если размер вывода (nxn) больше, чем размер памяти GPU, могу ли я использовать cublasXtSsyrk? – starrr

+1

Я считаю, что вы должны быть в состоянии. Как указано [здесь] (http://docs.nvidia.com/cuda/cublas/index.html#using-the-cublasXt-api): «API cublasXt cuBLAS предоставляет интерфейс Host Host с несколькими GPU: при использовании этот API, приложение должно только выделить необходимые матрицы в пространстве памяти хоста. ** Нет ограничений на размеры матриц, если они могут поместиться в память хоста. ** " –

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