2012-05-14 4 views
1

Я хочу скомпилировать код CUDA на Mac, но сделать его исполняемым в Windows.cuda nvcc cross compiler

Есть ли способ настроить кросс-компилятор nvcc CUDA?

Проблема в том, что мои окна для рабочего стола будут недоступны из-за путешествия, однако я не хочу тратить время, ожидая, пока я вернусь и не скомпилирую код. Если мне придется подождать, это будет пустой тратой времени, чтобы отладить код и убедиться, что он компилируется правильно и нравится. Тем не менее, у моего mac нет оборудования, способного использовать cuda.

+0

Я использую систему сборки CMake для кросс-компиляции. Вы посмотрели на него? – geek

+0

не. это то же самое, что строить обычный кросс-компилятор? – mma1480

+0

Nvcc не является компилятором. Он использует компилятор хоста для большей части компиляции (включая большую часть компиляции кода GPU). Для компиляции для окон требуется компилятор visual studio, и это требование не подлежит обсуждению. Вы можете установить цепочку инструментов на OS X без графического процессора NVIDIA. Вы просто не сможете запустить результат выполнения исполняемых файлов OS X. – talonmies

ответ

6

Короткий ответ, нет, это невозможно.

Это распространенное заблуждение, но nvcc на самом деле не является компилятором. Это драйвер компилятора , и он в значительной степени опирается на компилятор хоста C++ для управления компиляцией кода хоста и устройства. Чтобы скомпилировать CUDA для Windows, вы должны использовать с использованием компилятора Microsoft C++. Этот компилятор не может быть запущен в Linux или OS X, поэтому кросс-компиляция в целевой объект Windows невозможна, если вы не выполняете компиляцию на хосте Windows (например, возможна перекрестная компиляция 32/64 бит).

Другие две платформы CUDA одинаково несовместимы, несмотря на то, что для компиляции требуется gcc, потому что задние концы различны (Linux - платформа для эльфов, OS X - платформа для механической обработки), поэтому даже перекрестная компиляция между OS X и Linux isn Возможно.

У вас есть два варианта, если компиляция на OS X платформы является целью

  1. Установите OS X инструментарий. Несмотря на то, что на вашем оборудовании нет совместимого графического процессора, вы все равно можете установить набор инструментов и компилировать код.
  2. Установите набор инструментов Windows и визуальную студию внутри установки виртуальных окон (или установки физического лагеря загрузки) и скомпилируйте код внутри Windows на Mac. Опять же, для этого вам не требуется аппаратное обеспечение, совместимое с NVIDIA.

Если вы хотите запустить код без GPU CUDA, есть вариант некоммерческий (GPU Ocelot) и коммерческий (PGI CUDA-x86) вы могли бы исследовать.

+0

Я думал о том, чтобы использовать bootcamp для получения окон, а затем скомпилировать его, но я должен был также иметь аппаратное обеспечение для компиляции. но если я скомпилирую его без аппаратного обеспечения, было бы все же возможно запустить его на другой машине с аппаратным обеспечением или мне придется снова скомпилировать?спасибо – mma1480

+0

Если вы используете одни и те же архитектуры хоста и устройства, инструментарий CUDA и версии времени исполнения Microsoft на обеих машинах, я не понимаю, почему это не сработает, хотя у меня нет опыта в этом. – talonmies

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