cuda с mingw - обновлено - PullRequest
       50

cuda с mingw - обновлено

7 голосов
/ 04 мая 2011

Мы разрабатывали наш код в Linux, но хотели бы скомпилировать исполняемый файл Windows. Старая версия без gpu прекрасно компилируется с mingw в Windows, поэтому я надеялся, что смогу сделать то же самое с версией CUDA.

Стратегия состоит в том, чтобы скомпилировать код ядра с помощью nvcc в visual studio, а остальное с помощью gcc в mingw.

До сих пор мы легко компилировали файл .cu (с ядром и запусками ядра) в visual studio. Тем не менее, мы все еще не можем скомпилировать код c в mingw. Код c содержит вызовы cuda api, такие как cudaMalloc, и типы cuda, такие как cudaEvent_t, поэтому мы должны включить cuda.h и cuda_runtime.h. Однако gcc выдает предупреждения и ошибки для этих заголовков, например:

../include/host_defines.h:57:0: warning: "__cdecl" redefined

и

../include/vector_functions.h:127:14: error: 'short_4' has no member named 'x'

Есть идеи о том, как мы можем включить эти заголовки и скомпилировать часть кода c?

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Если вы действительно в отчаянии, может быть выход.Nvcc - это просто интерфейс для нескольких компиляторов.Он вызывает g ++ для извлечения комментариев, разделения кода устройства и хоста, манипулирования именами, объединения ссылок и т. Д. (Используйте --verbose) для получения подробностей.

Моя идея заключается в следующем: выдолжна быть в состоянии скомпилировать код хоста с помощью mingw при компиляции кода устройства в фатин на машине с Linux (как я полагаю, двоичный файл устройства не зависит от хоста).После этого свяжите обе части кода вместе с mingw или используйте API драйвера для динамической загрузки мусорной корзины.Отказ от ответственности: не тестировал!

1 голос
/ 04 мая 2011

Насколько я знаю, невозможно использовать CUDA без MSVC.Итак, вам нужен MSVC для работы nvcc, и вы можете скомпилировать код процессора с помощью mingw и связать все вместе.

Согласно http://forums.nvidia.com/index.php?showtopic=30743

"В настоящее время нет планов поддержки mingw."

0 голосов
/ 06 февраля 2015

Возможно, вы захотите взглянуть на то, как с этим справляется средство визуализации циклов, посмотрите на https://developer.blender.org/diffusion/B/browse/master/extern/cuew/ и https://developer.blender.org/diffusion/B/browse/master/intern/cycles/device/device_cuda.cpp

Я знаю, что это не автоматическая уловка, но она может помочь вам начать.

...