Как стать автором
Обновить

Комментарии 120

НЛО прилетело и опубликовало эту надпись здесь
Не все в этом мире горизонтально масштабируемо
Красота спасет мир?
Дилетантский вопрос:
Жертвуя чем достигается такая производительность?
Почему нельзя тем же способом повысить производительность CPU?
жертвуя разнообразием выполнимых задач.
преимущество GPU — узкая специализация. если упростить и гиперболизировать, то повысить можно, но тогда либо у вас будет по одному компьютеру на каждую задачу, либо в компьютере будет пара сотен процессоров с разной специализацией.
Можно пример задачи?
Числодробилки.
я не достаточно компетентен в этом вопросе, чтобы дать четкий технический пример.
НЛО прилетело и опубликовало эту надпись здесь
Одноленточная машина Тьюринга может быть ускорена в n, запрограммировав её на n-ленточной машине Тьюринга. Но к gpu computing это отношения не имеет.
НЛО прилетело и опубликовало эту надпись здесь
Ну почему? Работа человеческого мозга по поиску ответа на вопрос — это нейронная сеть. Причём с параллельным поиском!..
Распознавание образа — опять-таки параллельный процесс: мы сейчас именно переводом на OpenCL распознавания и занимаемся — результат довольно впечатляющий, хотя и далёкий от теоретического. (Теория — это то, сколько распознавание должно занимать времени с таким числом процессоров)
Но по-любому результаты ВЫШЕ, чем на тяге современного многоядерного центрального процессора…
Сравниваю нейронную сеть мозга с компьютером, не стоит забывать, что компьютер не может ответить: «Ну, хуй его знает, забыл. Я тогда вообще занят был!».
Столь высокая производительность GPU обьясняется следующим принципом работы: Вычислительный блок видеокарты может выполнять очень большое количество параллельных нитей (threads), но код у всех нитей должен быть одинаков, различаться могут только данные, с которыми работает каждая нить. Т.е. одна инструкция обрабатывает множество данных параллельно. В то время как в CPU нити полностью независимы друг от друга. Поэтому ядра GPU при сравнимой тактовой частоте вычислительного блока рвут центральный процессор, как тузик грелку. Конечно, и для CPU такая технология развивается, но значительно отстает в эффективности. См суперскалярность.
Учитывая такие особенности архитектуры, довольно сложно реализовывать под нее алгоритмы, которые не параллелятся очевидным способом. Например, хорошо параллелится фильтр изображения «контур» — для его работы не нужна информация о результатах обработки предыдущих пикселей на изображении, а обход графа с пометками уже сложнее. Итд
Ой, я опоздал)
Кроме того, на графиках любят показывать на GPU операции с одинарной точностью. Операции с двойной точностью в 2-4 раза медленее и на многих (игровых) видеокартах вообще не поддерживаются. Для того, чтобы использовать GPU для вычислений обычно приходится покупать профессиональные видеокарты, стоимостью 2-10 тысяч долларов.
GPU это, грубо говоря, один нормальный процессор, занимающийся управлением, и туча (все те тысячи ядер) намного более примитивных процессоров.

Пример – умножение матриц. Ну, или матрицы на вектор. Каждый элемент конечной матрицы можно считать отдельно от остальных. Если процессоров столько же, сколько элементов у матрицы, то ускорение уже будет приличным. Конечно, некоторое время уходит на коммуникацию…

В повседневной жизни задачи, как правило, сложно или невозможно «распараллелить».

Могу предложить пару вводных статей freetonik.com/text/parallel_computing_intro/
Производительность достигается путём увеличения числа ядер.

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

Распараллелить можно не каждый алгоритм, а если можно, то не всегда очевидно каким образом и опять же непросто отлаживать.

Пример «хорошей» задачи:
N-body problem
Матричные фильтры,
Перемножение и транспонирование матриц,
Поразрядная сортировка (radix sort),
Суммирование элементов массива (scan),
Ray-trcing
Даже эти задачи, очевидным образом решаемые на CPU могут вогнать в лёгкий (и не очень лёгкий) ступор при попытке запрограммировать их на GPU, но документация по этим вопросам есть и её много.

Пример «плохой» задачи.
Любая задача, где последуюущий блок кода зависит от предыдущего.
Или алгоритм слишком сложен для распараллеливания:
выполнение скриптовых сценок в компьютерных играх.
Выполнение правил бизнес-логики,
Обработка событий,
Работа с неразделяемым ресурсом.
И так далее.

Обычно распараллеливать и переносить на GPU имеет смысл только очень ресурсоёмкие и не очень алгоритмически сложные куски (хотя это и не всегда так).
Не узкая специализация, а очень массивное распараллеливание. От 10 в самых младших моделей, до 200-400 в старших доходит количество шейдерных процессоров.
ну т.е. это как с изобретением конвейера — собирать детали на заводе с конвейером можно намного быстрее, нежели когда конечный продукт приходит весь цикл сборки в руках одного ремесленника, который сам выполняет все различные операции.

принцип не совсем тот, но пример, как мне кажется, наглядный.
Не, тут скорее не конвейер, а многополосная дорога. А частота ядра — максимальная скорость. Чем больше полос, тем больше суммарная пропускная способность.
Но скорость прохождения конкретной машиной участка дороги всегда будет ограничиваться максимальной скоростью.
Перефразируя исходный вопрос — что мешает уже сейчас иметь 200-400 ядер для CPU?
Ничего не мешает. Только на этих ядрах должен будет выполнятся одинаковый код, и они будут в 5 и более раз медленнее. Если делать такую же производительность как сейчас и разный код, то процессоры будут размером больше кирпича, греться лучше чем утюг, а потреблять десятки киловаттов.
И это при том, что можно считать параллельно далеко не все. А если в программе есть последовательные вычисления, то польза от такой многоядерности падает очень сильно.
Мешает отсутствие кода, который бы эффективно исполнялся на таком CPU и ограничение на размер: если не применять 3D stacking то длинна соединений и задержки будут огромны, что породит нерешаемые проблемы в дизайне и производстве.
В GPU такой проблемы нет: все ядра очень простые и меленькие, ибо выполняют очень простые операции.

Многие приложения на Вашем четырехядерном процессоре задействуют только одно ядро и будь этих ядер хоть 1000 прироста производительности Вы не увидите.
Пропускная способность шин памяти.
Собственно мы тут для работы пару «супер-компьютеров» заказывали и я подбирал компоненты под это дело: у Нвидиа — предельное 512 процессоров (такую и взяли), а у Радеона — уже до пары тысяч!!!
Так в GPU «ядер» то на порядок больше (а то и два) и все они узкоспециализированные. Ядер в кавычках так как это не отдельное ядро всё таки, а что-то вроде APU.
Очень грубо говоря, в графике есть две основные операции — это сложение и умножение. Есть миллионы точек, и для каждой надо сделать одно и то же вычисление из нескольких сложений и умножений. Поэтмоу в GPU просто увеличивают количество аппаратных сумматоров и умножителей. Там конечно много подводных камней, но в первом приближении как-то так.
В CPU тоже делают что-то подобное, все эти команды SSE, SSE2, SSE3 — это как раз дополнительные блоки сложения-умножения. И всякие мультимедиа-задачи они ускоряют.
Но есть еще куча не-мультимедиа задач, где просто нет серьезных арифметических вычислений. Там две основных проблемы — это медленная скорость работы RAM и большое количество ветвлений в программах.
На частоте 10ггц, за время одного такта, сигнал успеет пройти меньше 3х сантиметров по плате. То есть успеет только выйти из процессора, а там уже начнётся следующий такт. Вообще я уже с месяц думал о подобном топике, но только без gpu :)
НЛО прилетело и опубликовало эту надпись здесь
Внизу уже написали. Мы просто привыкли что числа огромны и незаметно подобрались к барьеру. А он уже тут — рядом.
НЛО прилетело и опубликовало эту надпись здесь
Чем выше частота сигнала, тем больше начинают сказывать реактивные состовляющие. У любого провода есть как ёмкость так и индуктивность. В обычных условиях для низких частот они пренебрежимо малы. При повышении частоты они становятся проблемой. А емкость и индуктивность в одной цепи — это колебательный контур. А колебательный контур — это или генератор сигнала или радиоприемник, смотря как посмотреть. В радиотехнике мы специально подбираем параметры и схемотехнику чтобы получить то что надо. Здесь же получается полнейшая каша и черт ногу сломит что реально будет.

Лежат два проводка рядом — между ними будет емкость. Изогнули дорожку пару раз — индуктивность. Вот и получается, что вместо передачи сигналов по проводам — они либо гасятся нафиг (если индуктивность заработала по полной) и не доходят до того конца, либо утекают хрен знает куда и вообще ловятся на соседние дорожки.

И так везде. Даже на гораздо меньших частотах эти явления уже сказываются. Львиная доля конденсаторов на платах — как раз для нивелирования этих эффектов.
*сказываться реактивные составляющие. Прошу прощения, половина третьего ночи %)
С подобной проблемой впервые столкнулись еще в начале прошлого века, когда проложили первый трансатлантический телефонный кабель. Оказалось что сигнал по нему не проходит, хоть тресни!!!
Тогда это назвали проблемой длинных линий, развили специальную теорию, придумали как решать с помощью согласующих устройств. Тогда же родился термин «волновое сопротивление»
Ну есть еще и другие проблемы — чем выше частота, тем у́же получаются фронты сигнала. Если у нас есть параллельная шина из десятка проводников, то на высоких частотах мы должны выравнивать их длины и реактивные параметры, чтобы получить в итоге на том конце сигналы примерно в одно время. Иначе, грубо говоря, на одном длинном проводнике у вас сигнал будет приходить с задержкой бо́льшей чем период такта шины. Сказывается длинна проводника (скорость распространения волны конечна) и его индуктивность (которая сопротивляется изменению сигнала). Получится что скажем в слове один или несколько бит будут иметь не те значения какие надо. Фронты съезжают как попало, возникают перехо́дные процессы и т. д.

По этой причине память DDR3 так требовательна к разводке платы. И поэтому же нельзя вешать больше двух слотов на канал. Просто не работает и все.
НЛО прилетело и опубликовало эту надпись здесь
Можете даже пощупать — посмотрите разводку дорожек на материнской плате. На первый взгляд они нерационально изогнуты, кое-где они проложены петлями — это, собственно, самая видимая часть айсберга для синхронизации параметров соединительной разводки.
Угу, как раз хотел сказать об этом, да забыл. Спасибо что напомнили.
Потери энергии на излучение значительно возрастают при размерах проводника, сопоставимых с длиной волны распространяющегося по этому проводнику сигнала. При скорости света 3*10^8 м/с (для вакуума) длина волны излучения с частотой 4ГГц составит 0.075 м.

В металле скорость распространения сигнала ниже, поэтому длина волны меньше. В результате получаем, что при уменьшении размера проводника (процессоры все плотнее и плотнее) и при увеличении частоты может быть достигнуто такое сочетание размеров и частоты, при котором значительная часть энергии сигналов будет затрачена на излучение и процессор начнет работать с перебоями или вообще работать не будет.

Аналогичный эффект, кстати, проявляется на ЛЭП — при длине в несколько тысяч километров они начинают активно излучать сигнал с частотой 50 Гц, что оборачивается потерями при передаче от электростанций до потребителей.
НЛО прилетело и опубликовало эту надпись здесь
В том числе из-за потерь на излучение возрастает нагрев процессора, который приходится все сильнее охлаждать.
Поэтому на материнских платах применяют технику согласования длин проводников по длинне, укладывая их «змейкой».
За счет того, что первый график начинается с отрицательных значений, кажется, что производительность CPU с 2003-го года выросла от силы в 1,5 раза. Отличный ход.
Частоты выше 4 ГГц для современных процессоров практически недостижимы — слишком сильно начинают сказываться различные квантовые эффекты, а процессор оказывается слишком большим для своевременного обмена сигналами между отдельными его блоками.

Так что нет ничего удивидельного в том, что увеличился рост тактовых частот CPU. А графические процессоры на еще более низких частотат обычно работают, а ядер (вычислительных ячеек) у них сильно больше.
Надо же было так написать, «увеличился рост тактовых частот CPU»! Остановился, конечно же! :)
Просто любопытно, а откуда знаете про «различные квантовые эффекты» и «процессор оказывается слишком большим»? И почему 10 лет назад инженеры Intel этого не предполагали?
Нам про это расказывали в Универе, лет 9 назад :)

Думаю, инженеры Intel уже тогда были в курсе подобных проблем, просто так в один момент переключится на многоядерность и параллельные вычисления с простого увеличения частоты у них бы не вышло. А в то время поменять процессор с 667 МГц на 1.3 ГГц было очень круто! :)
Ну всякие RISC вроде POWER работают и на 5 ГГц.
Да, в Википедии так пишут. Наверное, им это и в самом деле удалось. Вопрос — ценой каких усилий.
RISC значительно проще, нежели x86, которые внутри RISC, а снаружи CISC. Поэтому и частоты могут быть выше (мое предположение, не претендую на истину).
Новые Phenom-ы народ уже умудряется и до 7ГГц разгонять, так что те 5 смотрятся не так уж и удивительно. Более удачная в плане тепловыделения архитектура видимо получилась, чем у AMD/Intel.
Те 5 это штатная частота в P595, например. Наверное, под азотом можно достичь и заоблачных цифр, просто с RISC этого никто, видимо, не делал :)
А Phenom не AMD?
Конечно AMD. Имелось ввиду сравнение архитектур x86-процессоров Intel/AMD с архитектурой RISC-PowerPC.
>большим для своевременного обмена сигналами между отдельными его блоками.
Вот по этому конвейер все длиннее и длиннее.
И чем длиннее тем легче переносит разницу во времени в разных частей не проца.
Длинный конвейер ещё заполнить чем-то необходимо. Вон на пнях 4ых был длинный, но простаивающий конвеер, пришлось вернуться в архитектуре 3их пней в Корах.
Новые интелы (sandy bridge) на воздушном охлаждении могут разгонятся до частот выше 5 ГГц. О каких «различных квантовых эффектах» идёт речь?
Ой, очень-очень интересно послушать про «квантовые эффекты подробнее»!
Токи утечки — самый банальный пример. Из-за которых нужно держать высокое напряжение и большую силу тока. Для IBM — это не такая уж и большая проблема, у них один POWER спокойно может скушать несколько сотен Ватт. Custom корпуса и система охлаждения позволяют это выдержать.

Токи утечки связаны с умененьшением размера транзистора, а уменьшение этого размера нужно, чтобы увеличить скорость срабатывания устройства, если точнее: скорость открывания затвора.

Ну, и так далее… В общем, квантовые эффекты возникают из-за уменьшения элементов, а уменьшение нужно для увеличения частоты. Поэтому, одним из факторов частоту ограничивающих, являются как раз квантовые эффекты.
Gate leakage, из-за туннелирования, который, видимо, Вы, по видимому, и называете «квантовыми эффектами» — это чисто технологическая проблема.
Использованием HK/MG стеков вопрос, в принципе, решается.

Проблема в подвижности носителей и surface scattering, уж скорее. Скейлинг просто перестает работать как раньше.

Что-то подобное я и хотел услышать от автора, а то очень часто люди начинают кричать о страшных квантовых эффектах, не особо понимая, о чем говорят.

Кстати, если уж на то пошло, то все вышесказанное имеет большое значение только для (квази)планарной технологии, а люди, которые делали прогноз в 2000 году наверняка считали, что мы перейдем на finFETы и тп.
Эмс. А туннелировение, разве, не квантовый эффект? Оно, конечно, решабельно, если повысить потенциальные барьеры пр помощи HK. Но, это временное решение, при последующем уменьшении туннелирование опять в полный рост встанет, потому что вероятность протуннелировать зависит и от ширины зазора между потенциальными барьерами.

А вообще, скорее всего, лет через 10 сами gate'ы станут работать на квантовых принципах (не путать с квантовыми компьютерами). Всякие там квантовые точки и прочие подобные структуры. Недавно тут статья проскакивала о том, как транзисторы можно делать просто на сеточке двуслойных нанопроводочков. Там, кроме всяких приятных свойств, ещё одно возникает, такая сеточка является ПЛИС'ом, способным работать на высокой частоте. Вот веселье-то начнётся, если эта технология пойдёт в массы: ) Будем процессоры у Intel скачивать: ), если Intel доживёт, конечно.
www.overclockers.ru/cpubase/?sort=percent&action=results&date=10000&cpu=0&showother=ON&showcoms=ON&dc1=&dc2=&items=25&search_mark=&search_mb=

8 ГГц даже есть
Правда все это под азотом. На воздушном охлаждении, если не ошибаюсь, только до 6ГГц разгоняли
Так это же не стабильные режимы работы. СБИС-ка и полчаса в таком режиме не протянет. Это так, одноразовый разгон: 3DMark запустить, и всё.
Прошлой осенью (чтобы соблюсти историческую точность: было это 23 сентября 2020 года) я получил рекламный телеролик некоей фирмы по продаже компьютеров. Название фирмы не скажу — за рекламу они мне не заплатили. А компьютер я давно уже хотел обновить У меня стоял до последнего времени IBM/AFT-1086 с частотой 480 мегагерц, и я был доволен.
Павел Амнуэль
«Компьютерные игры для детей среднего возраста», 1995 год.
а фамилия то там какая известная — Вайншток — www.compromat.ru/page_11073.htm
Про 2048 ядер скромно умалчивается :)
Зато на душе стало спокойно, не нужно заглядывать в анонсы, какая же частота будет в следующем месяце… в своё время это некоторым не давало покоя и была постоянная погодя за самым последним камнем
Сравнение теплого с мягким.
Зря вы так, по сложности кода который можно выполнять на GPU они уже практически приблизились к CPU.
Расскажите поподробнее? Когда я в последний раз этим интересовался с прикладной точки зрения (а это было месяц назад), GPU по разнообразию решаемых задач были весьма далеки от CPU. За месяц так много поменялось?
NVidia хвасталась что на своеих GPU запустила модифицированное линукс ядро, вроде это показатель сложности. www.fudzilla.com/graphics/item/11060-fermi-could-run-an-os
Когда последний раз около года назад интересовался можно было в случайном порядке читать память и вроде даже писать, опять же в произвольном порядке. Конечно такие вычисления не будут прям очень быстры т.к. все начинает упираться в скорость случайной выборки из памяти, но все-равно топовая видяха остается раз в 10-30 быстрее топового проца.
Быстрее на узкоспециализированных задачах, в этом и дело.

Когда CPU были не такие мощные, как сейчас (Intel 80386, например), изготавливали специальные платы с сопроцессорами, оптимизированными для декодирования JPEG или MPEG.
Если хотите, то называйте любые математические задачи узкоспециализированными, но опять же nvidia говорит что уже их чипы могут делать проверку на вирусы. Но конечно если у вас задача почти не требует данных и может быть масштабирована на 1000 ядер, вы получите ускорение относительно CPU не 30 раз, а 1000 или даже может 30 000.
Как только на видеокарте можно будет запустить любое приложение, так и поговорим. До этого сравнение не выйдет из разряда теплого с мягким.
Так NVIDIA много чего говорит, всему верить что ли? Вообще, действительно, на GPU можно запустить всё. Там работа одной нити вполне себе стандартна, но одна нить там ТАК тормозить будет, что кому оно надо? А распараллелить любую задачку не выйдет. Например, сортировку, или поиск в графе. Кроме того, не будет ускорения в 1000 раз, это уж точно. Потому что не забывайте о памяти, разница в ПСП не такая уж огромная. Да и 1000-чи процессоров там нет, чего уж…
Это круто, это круто.

А следующим тестом, кстати, будет обеспечение интерфейса между сетевушкой и GPU. А дальше берётся любой net test (от интеловских тестов на иопсы у ISCSI поверх ram-disk до тупого ab) и смотрится, сколько покажет GPU. Есть у меня интуитивное представление, что суперскалярная архитектура много асинхронных запросов не обслужит…
Там написано, что Линукс потенциально мог бы быть запущен. Так это или нет — фиг знает. Может популистское заявление, а может и правда.
Вас послушать, так выходит, что все кто сейчас выпускает компьютеры на основе CPU, а не GPU дураки. А умные то вообще сейчас есть? Кто уже понял? Кто уже выпускает компьютеры на базе GPU?
Дак. Там же сказано, что Fermi может запускать, а не GPU. Это размытая формулировка, потому что модели Fermi бывают разные. Те ящички, которые предназначены для вычислений содержат в себе управляющие ARM-процессоры, на которых, само собой, Linux вполне заводится. И вообще, вероятно, речь о той архитектуре, из которой растёт Project Denver.

А так-то на GPU современную операционку невозможно запустить, потому что GPU абсолютно не поддерживает такие механизмы, как прерывания и переключения контекстов. Это слишком сложно реализовать в рамках их архитектуры, и реализация нужных схем просто бы сводила на нет всю производительность которой они так хвастаются.
Может быть, кстати не знал про управляющие ARM, можете пояснить что именно они делают?

Ну я же не пытался доказать что GPU это замена процу, просто сказал что они то же уже много чего умеют, я думаю не за горами тот день когда и компиляторы будут использовать GPU для ускорения. В последней версии CUDA была заявлена поддержка mаlloc и free, а это уже очень много.
Как что? Управляют… Собственно, сами GPU — это огромные сопроцессоры, но чтобы ими управлять нужны обычные микроконтроллеры, которые занимаются подготовкой данных для них, DMA, взаимодействием с основной OS, планированием задач. И у AMD, и у NVIDIA стоят некие управляющие контроллеры. Про AMD не особо известно, что у них там, но у NVIDIA, судя по недавнему их объявлению о Project Denver, в этой роли в последнее время начали выступать ARM'ы.
Насчёт malloc free — очень сильно не понятно, зачем оно там. Алгоритмы, которые активно используют динамическую память — это, в основном, то, что связано с обработкой неких графоподобных структур данных, вроде баз данных или деревьев поиска. С графами GPU совсем не дружит.

Возможно, сделано просто для галочки. А, возможно, как и с кэшами, это malloc и free но особые какие-нибудь. Надо посмотреть документацию, что это за malloc и free.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Наверное, вам будут интересны работы тех товарищей, которые запускали Doom на цифровых фотоаппаратах :)

Если видеокарта оптимизируется для выполнения вычислительных операций, характерных для обработки изображений (они же пригождаются для других вычислений в рамках CUDA и Stream), то зачем на ней выполнять что-то, для нее нехарактерное? Для этого есть CPU, который лучше с задачей справится.
НЛО прилетело и опубликовало эту надпись здесь
Я не особо знаком с особенностями передачи команд в видео-сопроцессоры, поэтому не буду людей путать.

А основную идею тут уже озвучивали — видеопроцессоры хорошо умеют выполнять математические операции, на которые обычный CPU общего назначения тратит много времени. Но ничего кроме этих операций толком делать не умеют.
НЛО прилетело и опубликовало эту надпись здесь
Как ни странно, но высокая производительность GPU имеет прямое финансовое применение, в bitcoin-ах. Биткойны можно зарабатывать напрямую, из воздуха, тупо перебирая SHA256-хеши в очень большом количестве. И вот тут GPU пришлись очень к месту.

Сводная таблица возможностей видеокарт: http://pastebin.com/AvymGnMJ. Смотреть на столбец Mhash/s. Для сравнения, CPU выдают в среднем только ~2 Mhash/s на ядро. Даже восьмиядерный Xeon на 3GHz выглядит на этой задаче жалко.

P.S. У меня только одна слабенькая 5770, с ее 156 Mhash/s :-(
P.P.S. Наверное будет неуместно тут публиковать свой bitcoin-кошелек с просьбой о донейте на новую видюху?…
Тактовая частота процессоров Intel застыла в районе 3,4 ГГц.
Есть модели с 3,6 ГГц.
Если помните, то были и P4 3.8ghz и сколько лет назад…
Я помню только модели с turbo boost до 3,8.
3.73. Launch Date Q1'06, 5 лет назад.
К сожалению электронные процессоры даже близко не подошли к скорости решения отдельных задач, которую может продемонстрировать обычная логарифмическая линейка. Как известно ответ на задачу на ней получается со скоростью = сразу. То есть в то самое мгновение как только вы закончили ввод данных ответ уже есть. Философы могут сказать что ответ есть даже раньше чем вы о нём подумали.
Если, как в случае с логарифмической линейкой мы отбрасываем расходы на механические манипуляции с линейкой, отбросить расходы на электронные взаимодействия. То там тоже ответ получается мгновенно.
Каким образом манипуляции могут влиять на скорость? Это риторический вопрос который не требует ответа.
Да будет вам известно, что ограничение по скорости современных процессоров находится в своеобразной вилке — с одной стороны для увеличения быстродействия надо уменьшать размеры и размещать как можно больше элементов на конце иголки, а с другой стороны поджимает проблема отвода тепла с малых площадей.
В случае с идеальным аналоговым вычислительным устройством затрат на вычисление нет никаких. Есть затраты на ввод данных, но на скорость вычисления ои не влияют. В любом случае ответ который получается без затрат это мгновенный ответ. Что бы развязать настоящий холивар я вам скажу что за то время пока вы сдвигаете одну часть линейки относительно другой вы получаете миллионы решений совершенно бесплатно. Правда они вам не очень нужны.
Кстати самая большая логарифмическая линейка на которой считались первые спутники имела размер несколько метров.
А подробнее про эту линейку можно? :)
Вы в интернете или где?
Спасибо.
Отправилось… Википедия умалкивает о ней, одна из модификаций запроса вообще отправляет к вашему комментарию.
Почитайте на соседнем с Вики сайте :) Мало, но общее представление дается.
Спасибо за линк. В лукровской статье забавные ссылки.
Я не понимаю КАК Вы так ищете, что умудряетесь не найти?! Пробовали просто в яндексе написать: «логарифмическая линейка»? Будет Вам, и википедия, и большая советская энциклопедия, и всё что угодно.

Нет, я серьёзно хочу знать, как Вы искали. Расскажите пожалуйста.
Да, логлинейку находит, безо всяких проблем. Действительно, куча полезной информации. Но о «самой большой логарифмической линейке, на которой считались первые спутники» не говорит никто. По-крайней мере, на первых страницах.

— Черт… Только сейчас дошло, что JerryJJ, возможно, интересовала просто логлинейка, а я подумал, что он, как и я, ничего не может найти о «бааашой». =/
Вы не поверите, я тоже искал самую большую линейку. Обычную можно и из шкафа достать ;)
Прошу прощения, что не правильно вас понял. Тогда да. По наводке Albert_73 сложно найти что-то конкретное. Вот есть сайтик с бешенным количеством различных линеек http://www.sliderulemuseum.com/ Я не решился там копаться. А самую большую линейку нашёл вот эту:
image
Круто! «Они настоящие!!!» :)

Спасибо! :)
Да, скорость процессоров находится в этой вилке. Но скорость аналоговых расчетов гораздо сильнее ограниченна скоростью ввода данных. То есть если нужно вычислить 2+2 — то аналоговые вычислители быстрее. А если вычислить 100 разных выражений, то гораздо медленнее.
Ну и в логарифмической линейке вообще нет вычислителя. Это как сказать, что обычная линейка мгновенно вычисляет значение функции f(x)=x. Это просто механическая модель какой-то функции. Это как поставить линейку перпендикулярно другой и наложить это на рисунок параболы. А потом говорить, что это устройство мгновенно вычисляет квадрат числа, двигая одну линейку относительно другой.
Вот упрямый пионэр.
Я даже боюсь представить какое разочарование ждёт вас когда вы узнаете наскольео более примитивная аналоговая модель положена в основу битовыч вычислений.

Так и есть точно как у одного транзистора всё заранее известно так и в логарифмической линейке есть предопределённость. Только в линейке не нужно ждать пока электроны попадают со своих уровней.

Отностельно множества высилений я же привёл вам простой пример со сдвиганием оси где за мгновение получается тысячи рашаний для какого-нибудь логаррифма.

Если серъёзно то мне кажется что двоичные машины стали заложниками технологии и экономики. Никто не рассматривает никаких других процессоров принципиально.
От упрямого старпера слышу)
Естественно я знаю, что цифровые вычислители не могут не работать на основе аналоговых технологий. Ведь мир то аналоговый, а не цифровой.
Насчет множества вычислений при сдвиге оси. Нам не нужны тысячи решений какого-нибудь логарифма. Нам нужно одно решение, но нужного. Причем желательно с нужной точностью.
Другие процессоры рассматривают, и аналоговые вычислители тоже. Да и использовались они долго. На них очень сложно добиться высокой скорости расчетов, так как сложнее ввод данных и очень высокое влияние всяких помех, температуры. И их гораздо сложнее разрабатывать.
Не понимаю, зачем на первом графике есть место для отрицательных значений. Это очень сильно искажает объективность восприятия роста вычеслительности особенно CPU.
А ещё глупо выглядит то, что график CPU начинается позже GPU, будто их и не существовало раньше. Если нет данных, то не надо этот временной промежуток включать в график.
Ну и если уж хочется сравнить не производительности, а скорости роста производительности, то нужен ещё график, где CPU будет нарисован помноженный на некий мультипликатор для совмещения графиков для наглядности.
РАминь
Шикарные комментарии в теме! Понастальгировал и получил удовольствие. Спасибо!
К вопросу о производительности различных архитектур.

Вот тут, Intel показывает, как knights ferry рендерит трассировкой лучшей Wolfenshtein'а: www.youtube.com/watch?v=XVZDH15TRro — knihts ferry является ускорителем на базе Larrabe, который является многоядерником с примерно классической архитектурой. Производительность извлекается из широких SIMD с поддержкой scatter/gather инструкций (а потоковые процессоры в GPU это и есть широкие SIMD с поддержкой scatter/gather, локальной памятью и текстурными кэшами) и SMT.

Вот тут, ребята из KyeShot показывают, как они почти в реальном времени трэйсят сложные сцены, на современных многопроцессорных (4x) серверах: www.youtube.com/watch?v=zbokPe4_-mY — GPU с этим не справился бы, ибо ограничения в памяти.

Вот тут, Intel анализирует, архитектурные отличия между CPU и GPU, и размышляет, как видоизменить CPU, чтобы уделать GPU: citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.2755&rep=rep1&type=pdf

Так что… Борьба продолжается. Кстати, нужно учитывать, что при сравнении производительности CPU и GPU в задачках, обычно, сравнивается плохо оптимизированный CPU-код, и очень жёстко оптимизированный GPU (со всякими там свистелками, вроде ручного управления кэшированием), а в коде для CPU даже tiling не применяется, а он актуален и для CPU, и для GPU, потому что кэши же.

Не всё так просто, imho, в итоге.
И всё это по большому счету для игр
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории