Я пишу моделирование молекулярной динамики, и некоторые ядра будут вычисляться с помощью CUDA. Я начал свой код с простой реализации ЦП с использованием некоторых возможностей C++ 11. Теперь, когда мне нужно добавить код CUDA, мне нужно использовать компиляторы, которые не поддерживают функции C++ 11 (gcc < = 4.6).Объединение MPI с C++ 11 и CUDA
В моем файле makefile я создаю объекты из всех cpp-файлов отдельно и связывая их все вместе в конце. Кроме того, мой код разбивается таким образом, что можно было бы компилировать детали без CUDA с «современным» компилятором, а остальное (используя CUDA) со старым компилятором.
Мой вопрос сейчас, если это нормально, или если бы я мог/мог столкнуться с проблемами с этим путем?
Быстрое примечание: вы можете использовать более свежие версии 'gcc' с CUDA (например, я использую' gcc' 4.7.2 с CUDA 5.0). Однако, как вы сказали, вы не сможете использовать функции C++ 11 в коде, обработанном 'nvcc'. – BenC
Насколько я знаю, это связано с изменением файла заголовка CUDA, но у меня нет доступа для записи к этим файлам на кластерах. – vivaeltopo
Да, это хорошая настройка. Я использую его для всего моего кода (не из-за C++ 11, а для того, чтобы иметь возможность комбинировать мой код хоста с любыми библиотеками, которые могут плохо взаимодействовать с предварительной обработкой CUDA). – tera