Перейти к содержанию
  • Нужно больше ядер! TESALL проводит эксперимент


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

    с чего все начиналось

    В далеком 1967 году господин учёный по имени Джин Амдал сформулировал закон, описывающий рост производительности от увеличения числа вычислителей, то есть ядер, в нашем понимании. Закон этот не такой точный, не учитывает множества второстепенных факторов, однако, весьма хорошо согласуется с практикой.

    Закон Амдала.png

    Закон Амдала. Наглядно показано ускорение в зависимости от степени параллелизма

    Вдаваться в математику нам ни к чему, важно единственное – что бы получить существенный прирост производительности, необходимо максимально распараллелить программу. И процент параллельного кода должен быть более 90% для удовлетворительного результата. Учитывая, что 100% недостижимы в принципе, то линейного прироста добиться невозможно. Эту проблему и решают разработчики, зачастую далеко не очень удачно, многие игры и программы плохо оптимизированы под многоядерные системы. Так же оптимизация под разные процессоры существенно отличается, отсюда и разница в производительности в разных задачах в случае Intel и AMD.

    очумелые ручки

    А теперь закроем вкладку википедии и доверимся собственной голове, рукам и двухпроцессорной конфигурации с Xeon E5-2690. Ведь каким тестам можно доверять, кроме как своим? В наших руках 16 ядер и 32 потока. Была так же написана простая программа с высокой степенью параллелизма для расчета матрицы заданного размера. И в итоге были получены интересные результаты.

    Screenshot_1.png

    Закон Амдала для маленькой матрицы 500 на 500

    Screenshot_2.png

    Закон Амдала для большой матрицы 3000 на 3000

    В итоге получается, что от сложности вычислений растет эффективность распараллеливания. Чем сложнее задача, тем более востребована многопоточность. А для простых задач она может даже приводить к потере эффективности выполнения программы.

    Screenshot_3.png

    После оптимизации нашей программы

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

    Что же можно сказать в итоге? При определенном количестве ядер чисто математическая операция  с практически максимально достижимой степенью параллелизма после 22-25 потоков уже не ускоряется. Учитывая, что скорее всего развитие процессоров надолго затормозится после 7 нм техпроцесса, вероятнее всего нас ждет стагнация как компьютерных технологий, так и программных решений. Надежд на многослойные чипы не так уж и много, до сих пор не понятно, как охлаждать такие решения.

    А какие выводы можете сделать вы, посмотрев результаты этого маленького теста?

    • Нравится 13

    Обратная связь

    Рекомендуемые комментарии

    Lord RZ

    Опубликовано

    Спасибо за исследование, Fenom, это было познавательно. Я думаю, если все это притормозит и долго не будет появляться ничего нового, рынок быстрее перенасытится и цены на топчик поползут вниз. Что было бы неплохо.

    • Нравится 3
    Karatel Indoril

    Опубликовано

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

    • Нравится 4
    ZEYGEN

    Опубликовано

    Цитата:

    А какие выводы можете сделать вы, посмотрев результаты этого маленького теста?

    Да всё те же....мои железяки устарели и нужно больше золота, ядер и прочего дерьма -_-

    Цитата:

    я и цены на топчик поползут вниз.

    Было бы неплохо

    Цитата:

    А уж цены никто нам не скинет это точно

    А ведь так и будет бро -_-

    • Нравится 3
    • Не нравится 1
    OliverTwist

    Опубликовано

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

    • Нравится 3
    Fenom

    Опубликовано

    Цитата:

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

    Да, ты прав) Сейчас полностью забивают на код, потому что железо мощное. Собственно многое вообще автоматизировано.

    • Нравится 2
    sxdemon

    Опубликовано

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

    Из последних что смогу вспомнить в этой области

    Eternal 5D ru.wikipedia.org/wiki/Eternal_5D
    Носитель информации представляет собой наноструктурированный прозрачный материал, запись производится с помощью фемтосекундного лазера, работающего в режиме синхронизации мод. Таким методом возможно записать до 360 терабайт информации на один кристалл, расчётный срок хранения информации составляет порядка миллиардов лет. Уже есть готовый вариант и его применили см вики.

    Мемристоры
    Мемристоры могут быть использованы не только для хранения данных. Так, М. Ди Вентра и Ю. В. Першиным была предложена концепция вычислительных машин, в которых хранение и обработка информации осуществляется одним и тем же физическим устройством, основанным на мемристорах.

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

    Графеновые нанотрубки - как раз они решают полностью проблему с процами. Копировать не стал инфу ее тысячи в интернете.

    Ну и сам графен - это конечно прорыв во всех аспектах жизни. От электроники и машин, до медицины. Это будет революция.

    А технологий с 2009 года было открыто очень много и они развиваются. И очень скоро они явят себя миру. Как говорят спецы в этой области, мол нас ждет Торнадо технологий. Не зря даже Вовка заострил внимание на Искусственном интеллекте и что в будущем технологии разрабатывать будет сам ИИ ;)

    • Нравится 1
    vicktoras

    Опубликовано

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

    sky1304

    Опубликовано

    Очень интересно было почитать, спасибо!

    Ula1ri

    Опубликовано

    Вывод напрашивается сам. 10-7-5 нм хватит на ближайшие лет 10-15, за это время удасится сделаить "дешевые" квантовые решения, которые и займут "кремниевый" рынок.

    Fenom

    Опубликовано

    Цитата:

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

    Размер чипа невозможно увеличивать бесконечно. Как известно, все операции в процессоре выполняются за счет электрических сигналов, такт занимает наносекунды времени. Так вот скорость света настолько мала, что за одну наносекунду свет в ваккуме проходит всего 30 сантиметров. Учитывая что электрический ток сам по себе медленнее, да и среда у нас полупроводниковая, средний пробег за 1 наносекунду - 5-7 сантиметров. Вобщем увеличение кристалла приведет к снижению производительности, возрастут задержки обращения к кешу и прочие болячки. В видеокартах ядра работают независимо, и они так или иначе все равно обращаются только к медленной видеопамяти, там это не критично, с процессорами гораздо сложнее.

    • Нравится 1
    Fenom

    Опубликовано

    Цитата:

    Стагнация в области вычислений в будущем чистый миф и сказки (стагнация началась с 2007 г. и скоро идет ее конец). И все прочее сообщение.

    Спешу разочаровать. Во-первых, отказ от х86 архитектуры в нынешней ситуации невозможен. Во-вторых, переход на совершенно новые технологии из-за первого пункта не выгоден никому, слишком много экономических факторов, если бы это было возможно, давно бы все машины были на водороде например, еще годов так с 50х. В-третьих, переход на новые технологии полностью вычеркивает поддержку старых, уже давно существуют гораздо более эффективные процессорные архитектуры, которые производительнее х86, без всяких новых технологий, однако не переходят, потому что теряется совместимость.

    Ну и на самом деле, можно бесконечно приводить примеры и аргументы, почему этого не будет. Наука и технологии вещь эфемерная несколько. особенно современная, ибо исследования применения не находят в 99% в настоящий момент времени, потому что это никому сейчас не нужно и применять некуда, делается для портфолио и подъема по карьере ученого. Актуальны только научные заказы государства или компаний, для остального нужно время, если оно вообще когда либо придет. И не подумайте что так только у нас в стране, во всем мире научное сообщество так работает, у них свой междусобойчик.

    • Нравится 3
    Пакость

    Опубликовано

    Более менее последовательно отвечая на вопросы:
    Толковое распаралеливание - в общем трудоёмкий процесс со своими накладками. Программеры этим заниматься издавна не любят. Да вон с просто оптимизацией кода нынче полная задница, а мы ещё говорим про толковый параллелизм? Под который нередко нужно разрабатывать иные математические модели решения задачи?
    Короче ИМХО многоядерность/многопроцессорность будет, но не то чтобы сильно, оно и сейчас не шибко то востребовано, хотя при желании можно резко больше.

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

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

    Fenom

    Опубликовано

    Цитата:

    Более менее последовательно отвечая на вопросы:

    Цитата:

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

    Цитата:

    Короче ИМХО многоядерность/многопроцессорность будет, но не то чтобы сильно, оно и сейчас не шибко то востребовано, хотя при желании можно резко больше.

    Цитата:

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

    Цитата:

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

    Всегда стараются компоновать процессор компактнее. Разница в скорости трех уровней Кэша и оперативной памяти напрямую зависит от расстояния.



    Для публикации сообщений создайте учётную запись или авторизуйтесь

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

    Создать аккаунт

    Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

    Регистрация нового пользователя

    Войти

    Уже есть аккаунт? Войти в систему.

    Войти

×
×
  • Создать...