пятница, 23 октября 2009 г.

Семинар по CUDA

Еще относительно недавно у нас в университете проходил Software Freedom Day, где в числе выступающих я рассказывал, прерываясь на демонстрации красочного видео, о существовании архитектуры CUDA от NVIDIA, позволяющей загрузить GPU неграфическими вычислениями.

И вот в эту среду прошел семинар "Неграфические вычисления на графических процессорах", в рамках которого довелось рассказать о практике программирования с применением CUDA. Удалось рассмотреть довольно интересный вопрос оптимизации доступа к памяти GPU, предварительно предоставив материал справочного характера, необходимый для восприятия практических примеров.

Приемы оптимизации рассматривались на задаче решения СЛАУ на нейронной сети. Всего было приведено 3 реализации - базовая неоптимизированная, оптимизированная с применением разделяемой памяти, и, наконец, оптимизированная с использованием как разделяемой, так и текстурной памяти.

Презентации к обеим событиям и примеры (решение с подробными комментариями) доступны по приведенным выше ссылкам.

воскресенье, 11 октября 2009 г.

The Tag Game

Еще весной этого года (где-то числа 26, март), в рамках инициативы по приобретению навыков совместной разработки, был начат проект "The Tag Game", или попросту "Пятнашки".

После нескольких дней более-менее активной разработки проект был заморожен ввиду приближающейся сдачи курсовой, сессии, и т. п. Под конец лета разработка была возобновлена, и в конце августа - начале сентября была готова пилотная версия с поддержкой скинов, которая так и лежала на сервере, дожидаясь сборки и создания дистрибутива.

И вот сегодня было решено собрать ее и создать дистрибутив (пока только для Windows; Linux, а может и Mac - немного позже; приложение опирается на Qt, так что проблем быть не должно).

Итак, первая версия "Пятнашек" для Windows доступна отсюда (~4 Mb).

P. S. Исходный код открыт. Ссылка в Readme.txt.

суббота, 10 октября 2009 г.

Линковка библиотек

Маленькая заметка насчет линковки библиотек.

Уже не помню с каким тулсетом и в какой среде я тогда работал, но думаю неплохо отметить следующее.

Если, добавив в список зависимостей, скажем, libSomeLibrary.a, Вы получаете что-то вроде "libSomeLibrary.a not found", то стоит попробовать просто MyLib, без префикса lib и постфикса .a.