История появления мышек и клавиатур

История мышки

Как гласит история, первый прототип современной мышки появился в 50-х годах прошлого века. Создали его в рамках секретного военного проекта под названием DATAR (Digital Automated Tracking and Resolving System) канадские инженеры компании Ferranti Electric, которая имела контракт с канадскими ВМС на разработку компьютеризованной радарной сети. Системе, над которой они работали, требовалось устройство, с помощью которого оператор мог перемещать точку на экране радара. Решили эту задачу два инженера-разработчика – Том Крэнстон и Фред Лонгстафф, создав так называемый трекбол, в котором в качестве шара был использован канадский шар для боулинга (в отличие от американского он более лёгкий и не имеет отверстий для пальцев). В ходе работ было сделано 9 подобных экспериментальных устройств. Проект, малой частью которого и являлся трекбол, хоть и произвёл впечатление на военных, но денег для дальнейшего развития не получил (кстати, на проект в целом было потрачено около порядка 2 млн. долларов) и был "убран на полку". "Изобретение трекбола опередило время", – сказал Том Крэнстон в одном из своих интервью газете Toronto Star Weekly. А так как это был сверхсекретный проект, то более десяти лет о нём знали только в узком кругу военных, а инженеры не смогли запатентовать свою технологию.


Первый трекбол

Тем временем идеи графического компьютерного интерфейса и устройства для позиционирования курсора на экране уже витали в воздухе – инженеры всего мира пытались создать подобное устройство фактически с нуля. В частности, появилось устройство, названное Grafacon, оснащённое тонким металлическим стержнем, который двигался вперед и назад, и кнопкой для выбора объектов (который, можно сказать, оказался прототипом современного планшета).


Grafacon

Однако самым удачным изобретением, как мы сегодня знаем, оказалась именно мышка, придуманная Дугласом Энгельбартом (Douglas Engelbart). Кстати, "мышкой" своё устройство назвал тоже он. Официально же она называлась X-Y Position Indicator for a Display System (индикатор положения X-Y для системы отображения).

Про Энгельбарта можно сказать одно: он - человек-легенда. Несмотря на то, что если кто и слышал про этого американского учёного, то вероятнее всего, исключительно как про изобретателя компьютерной мышки (в 1970 году Энгельбарт получил на мышь патент за номером US3541541), область его интересов была гораздо шире – многие идеи и разработки были настолько революционным, что на несколько десятилетий опередили своё время. В частности, им 1 была создана система NLS (On-Line System), в число основных функций которой вошли такие привычные сегодня вещи, как редактирование текстов в онлайновом режиме, гипертекстовые ссылки, электронная почта, работа с буфером обмена. А так как реализовать эти функции теми средствами, которые уже имелись на руках, было невозможно, Энгельбарту пришлось создать целый ряд новых программных и аппаратных средств, которые сегодня нам так привычны – мышь для указания позиции на экране, многооконную систему вывода информации на экран, архитектуру клиент-сервер, универсальный пользовательский интерфейс и онлайновую систему подсказок с контекстной привязкой. Система NLS впервые была представлена в 1968 г. на Осенней объединенной компьютерной конференции (Fall Joint Computer Conference), где и состоялась демонстрация основных составляющих системы 2.


Дуглас Энгельбарт

Впрочем, о биография Энгельбарта описана во множестве интересных и познавательных статей (правда, всё больше на английском), мы же хотели поговорить именно о мышке. К каковой мы и возвращаемся.

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


Прототип мыши

К сожалению или нет, но дела у Augmentation Research Centre не ладились, и большая часть сотрудников ушла в легендарный исследовательский центр Xerox PARC, "прихватив" с собой многие идеи из ARC, в том числе и мышь. В 70-х годах бывший сотрудник ARC Билл Инглиш (Bill English) сумел существенно улучшить конструкцию мышки, сделав, в частности, возможным одновременное перемещение курсора по двум координатным осям (благодаря тому, что раздельные колеса были заменены одним металлическим шариком, перемещения которого фиксировались роликами внутри корпуса). В Xerox мышка использовалась, в частности, в революционных (для тех лет) компьютерных системах Xerox Star8010 и Alto.

В принципе, можно сказать, что мышки стали распространяться в начале 80-х годов прошлого века, однако оставались при этом экзотическим и весьма недешёвыми "зверьками" (высокая цена была обусловлена сложностью механической части устройства и практически ручной сборкой каждого экземпляра).

Но тут "подоспела" Apple. Собственно, она сделала один из наиболее важных (после собственно разработки) шагов – создала массовый, надёжный и недорогой продукт. Правда, сделала не самостоятельно, а при помощи сторонней дизайнерской компании Hovey-Kelley Design, которой Стив Джобс поручил разработать точно такую же мышку, как и уже существующие, только более дешёвую и неприхотливую.

Как мы теперь знаем, эта задача была выполнена, а конструкция мышки существенно упростилась: появился свободно катающийся в корпусе резиновый шарик, простые оптоэлектронные преобразователи и колесики со щелевыми прорезями (вместо стального шара в механической подвеске и ненадёжной системы кодирующих колес с электрическими контактами). И с тех пор конструкция механических мышек не менялась.

Остальную же часть истории развития мышки вы можете прочитать здесь (КТ #07 (723), "Зверь, именуемый мышь").

История клавиатуры

История клавиатуры, в отличие от мышки, гораздо более длинна и извилиста. Извилиста хотя бы потому, что клавиатуры развиваются до сих пор, и причём не в плане устройства или там, аппаратной начинки, а в плане удобства.

Она началась гораздо раньше, чем история собственно компьютера – с изобретения печатной машинки. И она гласит, что первая подобная машина была изобретена Генри Милом в 1714 году, то есть почти триста лет назад. Однако никаких данных о её устройстве не сохранилось, как, впрочем, и самой машинки. Вторая попытка создать машинку принадлежит итальянцу Пеллегрино Турри, который в 1808 году, почти сто лет спустя, изготовил машинку собственной конструкции. Однако, как и в предыдущем случае, ни сам аппарат, ни информация о конструкции до наших дней не дожили. В последующие 60 лет было создано ещё несколько печатных устройств, однако большой популярности они не получили.

А вот в 1863 году уже появился предок всех современных печатных машин. Изобрели её американцы Кристофер Лехтем Шоулз (Christopher Sholes) и Самуэль Суле (Samuel Soule), что характерно, оба – бывшие типографы. Правда, поначалу они придумали устройство для нумерования страниц в счётных книгах, но потом познакомились с Карлосом Глиденом, который подсказал им очевидную вроде бы идею – построить на этом же принципе машину, печатающую слова.


Патент

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

Впрочем, патентом дело не ограничилось – впереди были долгие годы последовательных усовершенствований машинки, что позволило в 1873 году заключить контракт с известной фабрикой "Ремингтон и сыновья", а в 1874 году отправить первую сотню машин в продажу.


Первая печатная машинка

Однако без интриг история неинтересна, не так ли? И без российских левшей-изобретателей её тоже сложно себе представить. Разумеется, Шоулз был не единственным, кто смог придумать печатающее устройство. В 1869 году наш с вами соотечественник, Михаил Иванович Алисов, разработал свой собственный вариант пишущей машины, названной им "Скоропечатник" (а ранее, в этом же году он создал аппарат для размножения бумаг, названный им "Полиграфия"; самого же Алисова считают отцом, пусть и не русской демократии, но зато – современной типографии). "Скоропечатник" позволял набирать текст со скоростью до 120 знаков в минуту. В 1873 году машина демонстрировалась на Всемирной выставке в Вене и была удостоена медали. Однако машина в массовое производство не пошла, так как первую же изготовленную им партию (в 1877 году) приравняли к типографским машинам по отношению к соблюдению цензурных постановлений. А всё из-за чего? Из-за высокого качества получаемого отпечатка, не отличимого от типографского. В результате желающих приобрести вместе с машинкой кучу дополнительных проблем не нашлось.


Скоропечатник

Вернёмся к более везучим Шоулзу и Суле, которые оказались в нужное время в нужном месте – в Америке в период экономического подъёма, и, заодно, вспомним, откуда пошла привычная нам раскладка QWERTY.

Первый вариант их машинки имел два ряда клавиш с цифрами и алфавитным расположением букв от A до Z (строчных букв не было, только заглавные; так же не было цифр 1 и 0 – вместо них использовались буквы I и O), однако такой вариант оказался неудобным. Почему? Однозначного ответа тут нет (сам Шоулз записки с объяснениями не оставил), зато есть легенда, согласно которой при быстром последовательном нажатии на буквы, расположенные рядом, молоточки с литерами застревали, вынуждая останавливать работу и руками разгребать затор. Но это, подчёркиваю, именно легенда.

Впрочем, алфавитное расположение букв действительно не было верхом эргономичности, посему изобретателями была предпринята попытка усовершенствовать расположение букв на клавиатуре, результатом которой и является известная нам QWERTY. Согласно еще одной легенде, брат Шоулза проанализировал сочетаемость букв в английском и предложил вариант, в котором наиболее часто встречающиеся буквы разнесены максимально далеко, что позволяло избегать залипаний при печати. Однако есть и другие версии. По одной из них (автор – А.Лебедев, да-да, тот самый) предполагается, что они могли в поисках более оптимального расположения букв консультироваться с типографскими наборщиками (у которых литеры в наборных кассах вовсе не были расположены по алфавиту).


Машинка Hammond

Продажи печатных машинок медленно, но верно росли, а так как пока не было (да и быть не могло) устоявшегося промышленного стандарта на подобные устройства, то плодились и конкуренты. Одними из наиболее сильных были машинки Hammond (1893) и Blickensderfer (1889) с иным типом расположения клавиатур.


Blickensderfer

Обогнать и, в конечном счёте, победить конкурентов помог, в общем-то, случай и реклама (пиар, как сказали бы сейчас). 25 июля 1888 года в Цинциннати состоялись состязания по быстроте набора текста между Франком Макгарином (Frank McGurrin), стенографистом суда Солт Лейк Сити, и неким Луи Таубом (Louis Taub), причём Тауб набирал текст на каллиграфе, а Макгарин – на печатной машинке. А машинка-то оказалась с раскладкой QWERTY! Разумеется, Макгарин победил, принеся славу как машинкам, так и раскладке, которая за 120 лет практически вытеснила своих соперников с рынка.

Ну а что с русской раскладкой-то? С нашим привычным ЙЦУКЕН’ом? История его появления хранит лишь отрывочные данные - известно лишь то, что придумана она была в Америке (а не в России, как нам бы хотелось думать) в конце XIX века. Зато, что характерно – все фирмы выпускали машинку только с одним вариантом раскладки ­ ЙIУКЕН. Это не опечатка – привычный нам ЙЦУКЕН появился только после реформы русского языка, в результате которой из алфавита исчезли "ять" и "I".

Так что, как видите, в отличие от проблем с русскоязычными кодировками, русская раскладка – практически единственная. Впрочем, есть и ещё одна – ЯВЕРТЫУ (с некоторыми вариациями – например, ЯЖЕРТЫ), в которой русские буквы расположены там же, где и схожие по звучанию английские. Создана она была нашим соотечественником Павлом Городянским. Нужна же она не для увеличения скорости набора (как в случае борьбе QWERTY с Dvorak), а для того, чтобы по-русски могли печатать те, кто либо совсем не знаком с русской раскладкой, либо те, у кого на клавиатуре нет соответствующих символов. Но это уже касается современного компьютерного мира клавиатур.

1. Точнее – его собственной лабораторией Augmentation Research Centre, ARC, созданной в исследовательском институте Стэнфордского университета (Stanford Research Institute, SRI).[ вернуться]

2. Те, кому интересно, могут посмотреть видеозапись этой демонстрации.

3. Кстати, изначально Энгельбарт планировал сделать 5 кнопок – по одной на каждый палец руки, но места на корпусе хватило только на 3.


RSS лента ВСЕГО блога с комментариями RSS лента ВСЕГО блога БЕЗ комментариев RSS лента этой КАТЕГОРИИ с комментариями RSS лента этой КАТЕГОРИИ и БЕЗ комментариев RSS лента ЭТОГО ПОСТА с комментариями к нему

Браузер Microsoft Internet Explorer продолжает терять позиции

По данным аналитиков из ирландской компании StatCounter, за последние 11 месяцев доля Microsoft Internet Explorer уменьшилась на 9,27%. Браузер Mozilla Firefox всего за неделю после выхода версии 3.5 набрал в США лишних 2,06%.

И все равно, по сведениям StatCounter, отслеживающей посещаемость трех миллионов сайтов, корпорация Microsoft продолжает лидировать на мировом рынке: совокупная доля браузеров IE6, IE7 и IE8 составляет 59,5%. В Северной Америке доля IE упала с 67,38% в июле 2008 года до 56,96% в июне 2009-го.

Белка песенки поет да орешки всё грызет.
Белка песенки поет да орешки всё грызет.

Mozilla остается на втором месте, занимая 30,4%. За 11 месяцев популярность Firefox выросла на 4,5%. В Европе он контролирует уже 39% рынка, а IE — 46%. Таким образом, Microsoft получает весомый аргумент в споре с Еврокомиссией о конкуренции браузеров в Старом Свете. Стоит добавить, что доля веб-обозревателя Opera в Европе достигла в июне 8,47% (в июле 2008-го — 3,55%). Мировая доля Opera увеличилась незначительно и составила 3,27% (в июле 2008-го — 3,1%).

Глобальная рыночная доля Apple Safari снизилась до 2,94% (в июле 2008-го — 3,1%). Зато новая версия Safari 4 была загружена 11 миллионов раз всего за три дня после июньского релиза, причем версия для Windows была скачана 6 миллионов раз.

Браузер Google Chrome, увидевший свет в сентябре 2008 года, находится пока на пятом месте — 2,83%. С конца февраля его доля выросла в два раза.

Net Applications, еще одна аналитическая фирма, увидела нечто необычное в июньской статистике и не желает обнародовать свои данные, пока не будет проведена дополнительная проверка.


RSS лента ВСЕГО блога с комментариями RSS лента ВСЕГО блога БЕЗ комментариев RSS лента этой КАТЕГОРИИ с комментариями RSS лента этой КАТЕГОРИИ и БЕЗ комментариев RSS лента ЭТОГО ПОСТА с комментариями к нему

CUDA мы катимся: технология NVIDIA CUDA

Согласно Дарвинской теории эволюции, первая человекообразная обезьяна (если быть точным – homo antecessor, человек-предшественник) превратилась впоследствии в нас. Многотонные вычислительные центры с тысячью и больше радиоламп, занимающие целые комнаты, сменились полукилограммовыми ноутами, которые, кстати, не уступят в производительности первым. Допотопные печатные машинки превратились в печатающие что угодно и на чем угодно (даже на теле человека) многофункциональные устройства. Процессорные гиганты вдруг вздумали замуровать графическое ядро в «камень». А видеокарты стали не только показывать картинку с приемлемым FPS и качеством графики, но и производить всевозможные вычисления. Да еще как производить! О технологии многопоточных вычислений средствами GPU, NVIDIA CUDA и пойдет речь.

NVIDIA CUDA

Почему GPU?

Интересно, почему всю вычислительную мощь решили переложить на графический адаптер? Как видно, процессоры еще в моде, да и вряд ли уступят свое теплое местечко. Но у GPU есть пара козырей в рукаве вместе с джокером, да и рукавов хватает. Современный центральный процессор заточен под получение максимальной производительности при обработке целочисленных данных и данных с плавающей запятой, особо не заботясь при этом о параллельной обработке информации. В то же время архитектура видеокарты позволяет быстро и без проблем «распараллелить» обработку данных. С одной стороны, идет обсчет полигонов (за счет 3D-конвейера), с другой – пиксельная обработка текстур. Видно, что происходит «слаженная разбивка» нагрузки в ядре карты. Кроме того, работа памяти и видеопроцессора оптимальнее, чем связка «ОЗУ-кэш-процессор». В тот момент, когда единица данных в видеокарте начинает обрабатываться одним потоковым процессором GPU, другая единица параллельно загружается в другой, и, в принципе, легко можно достичь загруженности графического процессора, сравнимой с пропускной способностью шины, однако для этого загрузка конвейеров должна осуществляться единообразно, без всяких условных переходов и ветвлений. Центральный же процессор в силу своей универсальности требует для своих процессорных нужд кэш, заполненный информацией.

Ученые мужи задумались насчет работы GPU в параллельных вычислениях и математике и вывели теорию, что многие научные расчеты во многом схожи с обработкой 3D-графики. Многие эксперты считают, что основополагающим фактором в развитии GPGPU (General Purpose computation on GPU – универсальные расчеты средствами видеокарты) стало появление в 2003 году проекта Brook GPU.

Создателям проекта из Стэндфордского университета предстояло решить непростую проблему: аппаратно и программно заставить графический адаптер производить разноплановые вычисления. И у них это получилось. Используя универсальный язык C, американские ученые заставили работать GPU как процессор, с поправкой на параллельную обработку. После Brook появился целый ряд проектов по VGA-расчетам, таких как библиотека Accelerator, библиотека Brahma, система метапрограммирования GPU++ и другие.

NVIDIA CUDA

CUDA!

Предчувствие перспективности разработки заставило AMD и NVIDIA вцепиться в Brook GPU, как питбуль. Если опустить маркетинговую политику, то, реализовав все правильно, можно закрепиться не только в графическом секторе рынка, но и в вычислительном (посмотри на специальные вычислительные карты и серверы Tesla с сотнями мультипроцессоров), потеснив привычные всем CPU.

Естественно, «повелители FPS» разошлись у камня преткновения каждый по своей тропе, но основной принцип остался неизменным – производить вычисления средствами GPU. И сейчас мы подробнее рассмотрим технологию «зеленых» – CUDA (Compute Unified Device Architecture).

Работа нашей «героини» заключается в обеспечении API, причем сразу двух. Первый – высокоуровневый, CUDA Runtime, представляет собой функции, которые разбиваются на более простые уровни и передаются нижнему API – CUDA Driver. Так что фраза «высокоуровневый» применима к процессу с натяжкой. Вся соль находится именно в драйвере, и добыть ее помогут библиотеки, любезно созданные разработчиками NVIDIA: CUBLAS (средства для математических расчетов) и FFT (расчет посредством алгоритма Фурье). Ну что ж, перейдем к практической части материала.

Терминология CUDA

NVIDIA оперирует весьма своеобразными определениями для CUDA API. Они отличаются от определений, применяемых для работы с центральным процессором.

Поток (thread) – набор данных, который необходимо обработать (не требует больших ресурсов при обработке).

Варп (warp) – группа из 32 потоков. Данные обрабатываются только варпами, следовательно варп – это минимальный объем данных.

Блок (block) – совокупность потоков (от 64 до 512) или совокупность варпов (от 2 до 16).

Сетка (grid) – это совокупность блоков. Такое разделение данных применяется исключительно для повышения производительности. Так, если число мультипроцессоров велико, то блоки будут выполняться параллельно. Если же с картой не повезло (разработчики рекомендуют для сложных расчетов использовать адаптер не ниже уровня GeForce 8800 GTS 320 Мб), то блоки данных обработаются последовательно.

Также NVIDIA вводит такие понятия, как ядро (kernel), хост (host) и девайс (device).

Работаем!

Для полноценной работы с CUDA нужно:

1. Знать строение шейдерных ядер GPU, так как суть программирования заключается в равномерном распределении нагрузки между ними.
2. Уметь программировать в среде C, с учетом некоторых аспектов.

Разработчики NVIDIA раскрыли «внутренности» видеокарты несколько иначе, чем мы привыкли видеть. Так что волей-неволей придется изучать все тонкости архитектуры. Разберем строение «камня» G80 легендарной GeForce 8800 GTX.

Шейдерное ядро состоит из восьми TPC (Texture Processor Cluster) – кластеров текстурных процессоров (так, у GeForce GTX 280 – 15 ядер, у 8800 GTS их шесть, у 8600 – четыре и т.д.). Те, в свою очередь, состоят из двух потоковых мультипроцессоров (streaming multiprocessor – далее SM). SM (их всего 16) состоит из front end (решает задачи чтения и декодирования инструкций) и back end (конечный вывод инструкций) конвейеров, а также восьми scalar SP (shader processor) и двумя SFU (суперфункциональные блоки). За каждый такт (единицу времени) front end выбирает варп и обрабатывает его. Чтобы все потоки варпа (напомню, их 32 штуки) обработались, требуется 32/8 = 4 такта в конце конвейера.

NVIDIA CUDA

Каждый мультипроцессор обладает так называемой общей памятью (shared memory). Ее размер составляет 16 килобайт и предоставляет программисту полную свободу действий. Распределяй как хочешь :). Shared memory обеспечивает связь потоков в одном блоке и не предназначена для работы с пиксельными шейдерами.

Также SM могут обращаться к GDDR. Для этого им «пришили» по 8 килобайт кэш-памяти, хранящих все самое главное для работы (например, вычислительные константы).

Мультипроцессор имеет 8192 регистра. Число активных блоков не может быть больше восьми, а число варпов – не больше 768/32 = 24. Из этого видно, что G80 может обработать максимум 32*16*24 = 12288 потоков за единицу времени. Нельзя не учитывать эти цифры при оптимизации программы в дальнейшем (на одной чашу весов – размер блока, на другой – количество потоков). Баланс параметров может сыграть важную роль в дальнейшем, поэтому NVIDIA рекомендует использовать блоки со 128 или 256 потоками. Блок из 512 потоков неэффективен, так как обладает повышенными задержками. Учитывая все тонкости строения GPU видеокарты плюс неплохие навыки в программировании, можно создать весьма производительное средство для параллельных вычислений. Кстати, о программировании...

Программирование

Для «творчества» вместе с CUDA требуется видеокарта GeForce не ниже восьмой серии. С официального сайта нужно скачать три программных пакета: драйвер с поддержкой CUDA (для каждой ОС – свой), непосредственно пакет CUDA SDK (вторая бета-версия) и дополнительные библиотеки (CUDA toolkit). Технология поддерживает операционные системы Windows (XP и Vista), Linux и Mac OS X. Для изучения я выбрал Vista Ultimate Edition x64 (забегая вперед, скажу, что система вела себя просто превосходно). В момент написания этих строк актуальным для работы был драйвер ForceWare 177.35. В качестве набора инструментов использовался программный пакет Borland C++ 6 Builder (хотя подойдет любая среда, работающая с языком C).

NVIDIA CUDA

Человеку, знающему язык, будет легко освоиться в новой среде. Требуется лишь запомнить основные параметры. Ключевое слово _global_ (ставится перед функцией) показывает, что функция относится к kernel (ядру). Ее будет вызывать центральный процессор, а вся работа произойдет на GPU. Вызов _global_ требует более конкретных деталей, а именно размер сетки, размер блока и какое ядро будет применено. Например, строчка _global_ void saxpy_parallel<<>>, где X – размер сетки, а Y – размер блока, задает эти параметры.

Символ _device_ означает, что функцию вызовет графическое ядро, оно же выполнит все инструкции. Эта функция располагается в памяти мультипроцессора, следовательно, получить ее адрес невозможно. Префикс _host_ означает, что вызов и обработка пройдут только при участии CPU. Надо учитывать, что _global_ и _device_ не могут вызывать друг друга и не могут вызывать самих себя.

Также язык для CUDA имеет ряд функций для работы с видеопамятью: cudafree (освобождение памяти между GDDR и RAM), cudamemcpy и cudamemcpy2D (копирование памяти между GDDR и RAM) и cudamalloc (выделение памяти).

Все программные коды проходят компиляцию со стороны CUDA API. Сначала берется код, предназначенный исключительно для центрального процессора, и подвергается стандартной компиляции, а другой код, предназначенный для графического адаптера, переписывается в промежуточный язык PTX (сильно напоминает ассемблер) для выявления возможных ошибок. После всех этих «плясок» происходит окончательный перевод (трансляция) команд в понятный для GPU/CPU язык.

NVIDIA CUDA

Набор для изучения

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

Специально для новичков разработан CUDA SDK Browser. Любой желающий может ощутить силу параллельных вычислений на своей шкуре (лучшая проверка на стабильность – работа примеров без артефактов и вылетов). Приложение имеет большой ряд показательных мини-программок (61 «тест»). К каждому опыту имеется подробная документация программного кода плюс PDF-файлы. Сразу видно, что люди, присутствующие со своими творениями в браузере, занимаются серьезной работой. Тут же можно сравнить скорости работы процессора и видеокарты при обработке данных. Например, сканирование многомерных массивов видеокартой GeForce 8800 GT 512 Мб с блоком с 256 потоками производит за 0.17109 миллисекунды. Технология не распознает SLI-тандемы, так что если у тебя дуэт или трио, отключай функцию «спаривания» перед работой, иначе CUDA увидит только один девайс. Двуядерный AMD Athlon 64 X2 (частота ядра 3000 МГц) тот же опыт проходит за 2.761528 миллисекунды. Получается, что G92 более чем в 16 раз быстрее «камня» AMD! Как видишь, далеко не экстремальная система в тандеме с нелюбимой в массах операционной системой показывает неплохие результаты.

NVIDIA CUDA

Помимо браузера существует ряд полезных обществу программ. Adobe адаптировала свои продукты к новой технологии. Теперь Photoshop CS4 в полной мере использует ресурсы графических адаптеров (необходимо скачать специальный плагин). Такими программами, как Badaboom media converter и RapiHD можно произвести декодирование видео в формат MPEG-2. Для обработки звука неплохо подойдет бесплатная утилита Accelero. Количество софта, заточенного под CUDA API, несомненно, будет расти.

А в это время…

А пока ты читаешь сей материал, трудяги из процессорных концернов разрабатывают свои технологии по внедрению GPU в CPU. Со стороны AMD все понятно: у них есть большущий опыт, приобретенный вместе с ATI.

Творение «микродевайсеров», Fusion, будет состоять из нескольких ядер под кодовым названием Bulldozer и видеочипа RV710 (Kong). Их взаимосвязь будет осуществляться за счет улучшенной шины HyperTransport. В зависимости от количества ядер и их частотных характеристик AMD планирует создать целую ценовую иерархию «камней». Также планируется производить процессоры как для ноутбуков (Falcon), так и для мультимедийных гаджетов (Bobcat). Причем именно применение технологии в портативных устройствах будет первоначальной задачей для канадцев. С развитием параллельных вычислений применение таких «камней» должно быть весьма популярно.

Intel немножко отстает по времени со своей Larrabee. Продукты AMD, если ничего не случится, появятся на прилавках магазинов в конце 2009 – начале 2010 года. А решение противника выйдет на свет божий только почти через два года.

Larrabee будет насчитывать большое количество (читай – сотни) ядер. Вначале же выйдут продукты, рассчитанные на 8 – 64 ядера. Они очень сходны с Pentium, но довольно сильно переработаны. Каждое ядро имеет 256 килобайт кэша второго уровня (со временем его размер увеличится). Взаимосвязь будет осуществляться за счет 1024-битной двунаправленной кольцевой шины. Интел говорит, что их «дитя» будет отлично работать с DirectX и Open GL API (для «яблочников»), поэтому никаких программных вмешательств не потребуется.

А к чему я все это тебе поведал? Очевидно, что Larrabee и Fusion не вытеснят обычные, стационарные процессоры с рынка, так же, как не вытеснят с рынка видеокарты. Для геймеров и экстремалов пределом мечтаний по-прежнему останется многоядерный CPU и тандем из нескольких топовых VGA. Но то, что даже процессорные компании переходят на параллельные вычисления по принципам, аналогичным GPGPU, говорит уже о многом. В частности о том, что такая технология, как CUDA, имеет право на существование и, по всей видимости, будет весьма популярна.

Небольшое резюме

Параллельные вычисления средствами видеокарты – всего лишь хороший инструмент в руках трудолюбивого программиста. Вряд ли процессорам во главе с законом Мура придет конец. Компании NVIDIA предстоит пройти еще длинный путь по продвижению в массы своего API (то же можно сказать и о детище ATI/AMD). Какой он будет, покажет будущее.


RSS лента ВСЕГО блога с комментариями RSS лента ВСЕГО блога БЕЗ комментариев RSS лента этой КАТЕГОРИИ с комментариями RSS лента этой КАТЕГОРИИ и БЕЗ комментариев RSS лента ЭТОГО ПОСТА с комментариями к нему

Прыг: 036 037 038 039 040 041 042 043 044 045 046
Шарах: 100
сентябрь, 2010
пн вт ср чт пт сб вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30