Вернуть версию Apple Clang для NVCC
Я пытаюсь запустить NVCC для компиляции программы CUDA на моем Mac.
Когда я пытаюсь запустить NVCC, я получаю следующую ошибку: "nvcc fatal: версия (" 70300 ") компилятора хоста (" Apple clang ") не поддерживается".
Недавно я обновил версию XCode до 7.3, а мой Mac до 10.11.4.
Есть ли способ вернуть мою версию Clang?
Ответы
Ответ 1
Ответ 2
У меня была такая же проблема после обновления до XCode 7.3 10.11. Переустановка предыдущих инструментов командной строки (7.2) не уменьшала значение стандартного компилятора clang. Чтобы исправить это, я использовал предыдущий пакет XCode.app для переименования и копирования каталога XcodeDefault.xctoolchain в директорию Toolchains в текущем /Applications/Xcode.app. Вы должны щелкнуть правой кнопкой мыши по Xcode.app в "Показать содержимое пакета", а затем перейти к директории Toolchains.
![введите описание изображения здесь]()
Затем (повторно) запустите Xcode, нажмите команду -, для настроек, затем перейдите в локации. Вы увидите раскрывающееся меню для инструментов командной строки. Измените это на версию скопированной инструментальной цепочки.
![введите описание изображения здесь]()
Вы можете проверить версию clang в терминале по умолчанию:
clang -v OR llvm-gcc -v
Теперь nvcc должен работать
Ответ 3
Я попал в ту же проблему.
Я думаю, что старые инструменты командной строки, которые могут быть загружены из
https://developer.apple.com/downloads/
может решить эту проблему.
Обновлено:
Я скачал по ссылке ниже и установил, версия clang была успешно возвращена в Apple LLVM версии 7.0.2 clang-700. Но, пожалуйста, следите за версией OS X.
http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2.dmg
Ответ 4
В принятом ответе говорится, чтобы загрузить новейшие инструменты командной строки и установить их, а затем выбрать их, введя в консоль
sudo xcode-select --switch /Library/Developer/CommandLineTools
Его спросили, как вернуться к исходной версии инструментов. Это достигается с помощью
sudo xcode-select --switch /Applications/Xcode.app
Ответ 5
К сожалению, установка инструментов командной строки из X-кода версии 7.2. в настоящее время не решает этого.
Попытка скомпилировать результаты:
nvcc fatal : GNU C/C++ compiler is no longer supported as a host compiler on Mac OS X.
Что для меня было трюк, заключалось в том, чтобы удалить Xcode 7.3 и установить Xcode 6.2 с сайта разработчика Apple.
Ответ 6
Переименовать Xcode существует в вашем mac как Xcode-7.app в папке /Applications.
Затем загрузите Xcode6.4 из https://developer.apple.com/download/more/ и установите его.
Ответ 7
80100 может работать с некоторыми программами nvcc
Я использовал "80100" и nvcc для некоторых других моих программ.
... но не образец
`
...
nvcc fatal : The version ('80100') of the host compiler ('Apple clang') is not supported
...
`
установить CLT 8.2 (инструмент командной строки от Apple), это как-то нормально с сообщением о "экземпляре инструментов командной строки"
Я google и вижу обсуждение об этом (https://github.com/arrayfire/arrayfire/issues/1384) о проблеме с огнем nvcc массива и благодаря подсказке перейти на CLT 8.2, последняя версия не актуальна. Это похоже на предупреждение с сообщением об "экземпляре инструментов командной строки"
Вам нужно использовать команду "sudo make" для компиляции кода примера:
` ... $ sudo make Пароль:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
expr: syntax error
/Developer/NVIDIA/CUDA-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -Xcompiler -arch -Xcompiler x86_64 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o deviceQuery.o -c deviceQuery.cpp
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
/Developer/NVIDIA/CUDA-8.0/bin/nvcc -ccbin g++ -m64 -Xcompiler -arch -Xcompiler x86_64 -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-8.0/lib -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o deviceQuery deviceQuery.o
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
mkdir -p ../../bin/x86_64/darwin/release
cp deviceQuery ../../bin/x86_64/darwin/release
$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
...
`
Ответ 8
У меня была такая же проблема!
Посмотрел в моем Time Machine Backups и скопировал Xcode.app(7.2.1) в папку my/Application. Вы также можете загрузить его с веб-страницы разработчика Apple и перенести в свою папку "Приложение".
После этого вы можете изменить версию командной строки Xcode в своих настройках Xcode до 7.2.1
Затем nvcc снова будет работать (даже с pycuda-2016.1).
clang --version
дает мне:
Apple LLVM version 7.0.2 (clang-700.1.81)
Ответ 9
Я бы попробовал homebrew версию llvm, это работает для меня.
brew install llvm37
Затем установите свой компилятор для доморощенного clang:
/usr/local/bin/clang ++-3.7 или что-либо, что отвечает
which clang++-3.7
Таким образом, вы можете оставить свои настройки среды OS X-dev такими, как они есть.