#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/