Начало работы с CUDA в Matlab

#matlab #cuda

#matlab #cuda

Вопрос:

Привет, мне нужно начать работу с Cuda в Matlab. Поскольку мне нужны дополнительные функции, отличные от предоставляемых в matlab, мне нужно написать свой собственный код на c , например, я хочу запустить свою программу на 1 .. N GPU-процессорах и сравнить результаты для вычисления ускорения, которое не поддерживается самой Matlab (поскольку Matlab всегда оптимизирует себя для использования всех процессоров).

Теперь мне интересно, как лучше всего начать. Я уже прочитал много статей, но мне все еще интересно, например, что это за файлы:

.cu .cubin .ptx .mex

Итак, каким путем мне нужно идти? Записываю свой код в файл .cu, а затем его компилирую (какой инструмент использовать?

Мой компьютер находится:

Q9550 с GTX460, Win7 x64, Matlab R2010b x64, Visual Express C 2008 (бесплатная> 32-разрядная версия), Cuda Toolkit 3.2 (64-разрядная версия), новейший драйвер Nvidia и SDK для программирования GPU 3.2.16_win_64

Как продолжить? Когда я пытаюсь открыть один из примеров из SDK для программирования на GPU, например, файл vectorAdd_vc90.vcproj ouf ot C:ProgramDataNVIDIA CorporationNVIDIA GPU Computing SDK 3.2CsrcvectorAdd

Я получаю

«Произошла следующая ошибка синтаксического анализа XML:

Файл: C:ProgramDataNVIDIA Корпорация NVIDIA GPU Computing SDK 3.2 C src vectorAdd vectorAdd_vc90.vcproj Строка: 22 Столбец: 4 Fehlermeldung: пользовательский файл сборки «C:Program Файлы (x86) Microsoft Visual Studio 9.0VC VCProjectDefaults NvCudaRuntimeApi.rules «файл не найден или не может быть загружен»C:ProgramDataNVIDIA Корпорация NVIDIA GPU Computing SDK 3.2 C src vectorAdd vectorAdd_vc90.vcproj «не удалось загрузить»

Когда я просто открываю vectorAdd.cu , я не нахожу никакого способа скомпилировать его, чтобы запустить в Matlab. Возможно, было бы также возможно просто работать полностью без Visual Studio, чтобы я писал свой код, например, в Notepad и компилировал его сам?

Заранее большое спасибо, ребята!

Комментарии:

1. Хорошо, я узнал, как открыть проект самостоятельно, нашел следующее: I looks like you are missing the cuda build rules. At least for CUDA 3.2 there is a catalog in $(CUDA_PATH_V3_2)extrasvisual_studio_integration. There is a ReadMe file on where to move the CUDA build rule files. You should copy the Cuda build rule files into the <Visual Studio directory>VCProjectDefaults. на этой странице: ссылка

Ответ №1:

Если у вас есть доступ к Parallel Computing Toolbox, вы можете использовать графический процессор напрямую, используя GPUArrays. Вы также можете более легко интегрировать свой собственный рукописный код CUDA, используя parallel.gpu.Объект CUDAKernel

Ответ №2:

Если parallel toolbox недоступен, вы все равно можете использовать возможности mexFunction для использования графического процессора

http://www.mathworks.com.au/help/distcomp/create-and-run-mex-files-containing-cuda-code.html

Я не думаю, что это доступно для более ранних версий, чем 2013a. В этом случае вы можете написать точку входа mexfunction и включить вызовы функции cuda для передачи памяти на устройство и из него

http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/