Новый MacBookPros идет с двумя графическими адаптерами, Intel HD Graphics и NVIDIA GEFORCE GT 330M. OS X переключается назад и вперед между ними, в зависимости от рабочей нагрузки, обнаружения внешнего монитора или активации Rosetta.
Я хочу намочить ноги с программированием CUDA, и к сожалению SDK CUDA, кажется, не заботится об этом назад и вперед переключение. Когда Intel активен, никакое устройство CUDA не обнаруживается, и когда плата Nvidia активна, он обнаруживается. Таким образом, мое текущее обходное решение должно использовать небольшой инструмент gfxCardStatus (http://codykrieger.com/gfxCardStatus/) для принуждения карты на или прочь, так же, как мне нужен он, но это не удовлетворительно.
Делает кого-либо, здесь знают то, что бывший благословленный Apple, рекомендуемый Apple путь состоит в том, чтобы (1) обнаружить присутствие карты CUDA, (2) активировать эту карту когда существующий?
Что ж, предположительно MacOsX должен переключаться туда и обратно, когда это необходимо, и, очевидно, он не учитывает CUDA.
В Snow Leopard Apple представила OpenCL, который должен использоваться для программирования графического процессора в любом приложении, это, вероятно, рекомендуемый Apple способ достижения этого вместо CUDA.
Я тестирую CUDA и OpenCL на NVidia-Platform. Все мои приложения (я должен написать его с помощью cuda и opencl framework) имеют одинаковую производительность (измеряемую в MFlops). НО: если вы используете оптимизацию локальной памяти для NVidia, то есть некоторые проблемы с запуском этого приложения с ATI-GPU. Так что это не совсем кроссплатформенный :(