Так получилось, что во время написания этого поста, я являюсь счастливым обладателем ноутбука фирмы ASUS, модель X7BS. Если захочется погуглить, то в нем Intel Core i7 - 2630QM, 2.0GHz, что даёт мне 8 гипертрединговых ядер, ну и два жёстких по 500 Gb. Однако не это в нём примечательное, а то, что он является обладателем технологии NVIDIA Optimus. Другими словами, его видеокарта GeForce GT 540M (2 Gb) умеет распоряжаться интегрированной Intel'овской картой.
Ну раз моя видеокарта может пользоваться CUDA технологией, то я решил поковырять параллельное программирование на ней на досуге. Проблема в том, что официально NVIDIA поддерживает MS Visual Studio 2008/2010 своим плагином Nsight для разработки приложений под CUDA. Начиная с 5.0 версии, они разродились самостоятельной средой разработки на основе Eclipse. Но минус в том, что эта IDE доступна для Linux'a и Мака (кажется).
Попробовав поставить старые .deb пакеты под обновившуюся недавно Убунту, я наткнулся на несколько, для меня, новостей: Optimus под линуксом идёт плохо, CUDA поддерживает старый компилятор GCC-4.6. Всё это меня расстроило в конец, потому что с OpenSuse дела тоже идут не гладко со старыми компиляторами, поэтому я решил написать статью о том как запустить CUDU с моей видеокартой под линукс.
Для начала нам надо запустить Оптимус. Под ОпенЗюзе есть хорошая статья (на немецком и русском языках), которая дала мне понять, что с Оптимусом под линуксом жить можно. Хочу сразу же обратить внимание на небольшую и простую переписку в форуме, которая мне помогла установить поддержку Оптимуса. Кстати да, я там отличился. У вас, скорей всего, как и у меня x-swat репозитории для 12.10 окажутся пустыми. Но это и не важно, ибо он не нужен вроде как :) В лучшем случае, если не полетит, то в файле /etc/bumblebee/bumblebee.conf должно быть так:
Driver=
...
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-current
Module=nvidia
...
Про всяких пользователей я умолчу, так как все должно было бы встать нормально. Если что, проверьте своего пользователя, чтобы он был в группе bumblebee:
Если у вас всё взлетит, то вы увидите следующие или похожие результаты:
Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate.
304 frames in 5.0 seconds = 60.613 FPS
... Intel
4439 frames in 5.0 seconds = 887.763 FPS
... NVIDIA
Polygons in scene: 62464
Visual ID of window: 0xa3
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Sandybridge Mobile
60.271004 frames/sec - 67.262440 Mpixels/sec
... Intel
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce GT 540M/PCIe/SSE2
110.310679 frames/sec - 123.106717 Mpixels/sec
... NVIDIA
Вот собственно и всё для этой части. Что-то поздно и я подумываю над тем, чтобы пойти спать. К сожалению, я не закончил статью, а посему про CUDA напишу позже... Ку!
Комментариев нет:
Отправить комментарий