«Гонки данных» и «используется в нескольких потоках» — это не одно и то же. Можно использовать одну и ту же память в нескольких потоках без синхронизаций и не получать гонку, так как синхронизация происходит в другом месте.
Для примера можно взять очередь на массиве, в которую пишет один поток, и из которой читает другой. Синхронизация памяти очереди происходит неявно с помощью индексов на первый/последний элементы очереди. Но, насколько я понимаю, в Rust'е все равно придется ставить мьютекс, что бы считать/записать данные?
То есть, если переменная используется в нескольких потоках, то любые чтение/запись в нее должны быть как минимум атомарными? Тогда это отличная причина не переходить на Rust.
Кстати, заинтересовало, как эти проверки выполняются для переменной, которая используется в уже скомпилированном коде. Или такой ситуации вообще не возникает?
Не знаю, мне вот никто не тыкает RTX framework. Потому что зачем какой-то фреймворк, если есть DX12, который позволяет общаться с рейтрейсинговыми ядрами без всяких фреймворков.
На счет пощупать — DLSS уже, насколько я знаю, есть в Unreal'е, для рейтрейсинга вообще полное API в DX12. Чего Вам не хватает для пощупать?
Это не так, очень многие хвалят АМД за низкие цены и советуют брать если вас не волнует высокое энергопотребление.
Ну я так и сказал)) И эти AMD с низкими ценами очень активно всасывают у аналогичных карт от NVidia. Так что если Вас не волнует высокое энергопотребление, отсутствие нормальных драйверов, и все что Вы хотите — сэкономить пару баксов, полностью пожертвовав производительностью — да, берите AMD. Но, справедливости ради — это сейчас так, раньше сэкономить можно было больше, и разрыв с NVidia был не настолько большим.
Вы разумеется понимаете что речь идет про гибридный рендеринг, а вовсе не 100% рейтресинг, качество которого то же бывает разное.
Вы написали «рейтрейсинг 4K60fps». Я должен был по-быстрому прикинуть архитектуру рендер-движка? Не говоря уже о том, что фреймтайм тут очень сильно зависит от сложности сцены.
Во-первых, что то я вообще никогда не слышал, что бы при сравнении NVidia и AMD хвалили AMD. Разве что ходят слухи, что самые отстойные AMD можно купить дешевле, чем самые отстойные NVidia.
Что касается рейтресинга, то на мой взгляд 4К60фпс можно не ждать еще одно два поколения.
*одно два десятилетия
Рейтрейсинг сложно назвать ненужным, но на текущий момент он определенно недостаточно мощный, что бы справляться с тенями/отражениями/освещением в нормальном качестве даже с брутальными хаками.
Про DLSS молчат, потому что его поддержка ограничивается тем, что его по-быстрому вкрутили в Unreal.
Мне кажется, проблема не в том, что Линус оскорбляет чью-то работу, а в том, что он оскорбляет самих людей, кто эту работу делает. ИМХО если кто-то написал убогою статью/код, нет ничего плохого в том, что бы сказать, что это убого; но обвинять людей в умственной отсталости из-за того, что они допустили ошибку — не очень правильно.
У меня тоже совсем недавно был процессор на 35W — i3 2330M. И это, насколько я знаю, аналог сегодняшних низковольтных (у которых средний TDP все же 15W, хоть и колеблется в пределах 10-25W). Так что процессоры все же становятся менее горячими. А новые на 45W — это аналоги старых на 45W (сходу нагуглил i7 2670qm), ну там упор в производительность, а вентиляторы пока с 45W справляются — пусть справляются.
Наличие потоков в современных ОС не отменяет использования отдельных процессов.
Это почему это? Насколько я знаю, процессы вместо потоков используют только x86 легаси-монстры, которые не в состоянии адаптировать код под x64, вследствие чего для одного процесса выскакивает ограничение в 2ГБ по адресному пространству (вроде всякими хаками выгрызают 4ГБ, но это не точно, ну и в 2018 году этого частенько не хватает). Еще, насколько я знаю, иногда в целях безопасности. А в общем случае создавать отдельные процессы вместо потоков смысла нет.
Во-первых, в самом начале статьи написано, что личного мнения автора не будет. Так что могли просто не читать, если не считаете такой формат приемлемый.
Во-вторых, мнение он все равно высказывает, просто в другом месте — выше была ссылка. (Я по ней не ходил, но пишут, что так и есть.)
А «все эти этосы и телосы» — это не аргументы, это понятия из философии, с помощью которых автор объясняет характер текущей ситуации. И честно говоря, лично мне сложно интерпретировать «эти общие разглагольствования» в чторону CoC, может расскажете, как это у Вас получилось?
А вот эта цитата выражает весь ужас проблемы:
Кому надо — будет спорить по существу, кому не надо — будет прикапываться к форме в любом случае.
Жаль, что вариант «забить на кучку плебеев и спокойно заниматься своим делом дальше» теперь недоступен.
Ну, на счет одинаково важны — это все таки субъективно. Я вот вообще почти не слыхивал про tab indent space align, а подсветка синтаксиса очень помогает.
Вообще то тут сильно зависит от того, что парсить и как рисовать. И на каком железе. Парсинг строки кода на C++ может быть сильно медленнее, чем отрисовка символа 16х16 пикселей с заданным фоном.
А вообще мне кажется, Вы с VolCh о разных вещах говорите. Вы — о времени выполнения, а он — о времени разработки.
Любой хороший анализ будет подталкивать к одному из решений — правильному. А о том, что такое манипуляция, можно рассуждать так же долго, как и о harrasment'е))
На UserBenchmark'е описана возможная причина (помимо дефолтного отставания в single-core):
AMD's new top-of-the-line Ryzen Threadripper is now here, boasting 32 cores at a base clock of 3.0Ghz and a boost of 4.2Ghz. On paper, it seems like a processor with tremendous value for money, with an MSRP of $1799, $200 less than Intel's top-end i9-7980XE, while offering 32 cores compared to the Intel's 18 cores. However, benchmarks show that this processor, despite its monstrous multi-core performance of over 4000 points in UserBenchmark and over 5000cb in Cinebench R15, real-world performance, especially in Windows 10 (due to Window's scheduler) is severely hampered by memory bandwidth limitations due to X399 only supporting Quad-channel ram (compared to EPYC's Octa-channel support). This means that only 2 of the 4 dies (16 cores) are directly connected to the RAM, while the remaining 2 dies have to go through the infinity fabric. Running the 2990WX on Linux improves its performance in some cases, but the memory bandwidth bottleneck is a hardware limitation. As such, in many real-world applications, the 2950X and the i9-7980XE beats the 2990WX, especially in memory intensive workloads and gaming. That being said, users should consider the 2950X, which is half the price of the 2990WX and in many applications outperforms the 2990WX.
Вот Вы язвите, а зря, ведь пользователь и правда не знает чего хочет. Откуда людям знать, что мобильный клиент для соц-сети/месседжера может работать быстро, если они сидят в Facebook'е/Viber'е? И требования новых фич/редизайна интерфеса/другие поводы убить производительность Вы ведь не напрямую от пользователей получаете, они исходят от руководства, которое думает как раз так, как Вы написали.
А что, запрещено использовать слова, которые не встречаются в предыдущем комменте? Я то думал сейчас как заиспользую свой скудный словарный запас…
Если что, «квалифицированный специалист» употребляется в смысле человека, который хорошо разбирается в экосистеме, в которой работает, и следовательно умеет в оптимизацию.
И проблема не в том, что оптимизация занимает много времени, она на самом деле много времени не занимает. Но вот чего она требует — так это много мозгов и много понимания работы используемого инструментария. Проблема в том, что сейчас модно не голову включать, а выстраивать красивые абстракции на тоннах фреймворков, чем большинство и занимается.
Кстати, хотелось бы пример оптимизированного софта, который невозможно использовать, и взлетевшего не оптимизированного аналога, но это больше к NIKOSV.
Ах да, ведь у вторых зачастую получается глючный, постоянно падающий, неюзабельный с точки зрения функциональности и UX/UI софт
Да что Вы говорите! Это точно у квалифицированных специалистов такое получается? Ах да, квалифицированный специалист — это же не тот, кто умеет писать нормальный софт, а тот, кто за пару минут выведет 300 байт текста, прогнав 200МБ жабаскрипта.
Имею в виду щелканье по иконке в трее для того, что-бы развернуть окно. Окно то разворачивается, но в течении нескольких секунд рисует всякие овалы вместо контента.
Справедливости ради, возможно на счет 5 секунд я и перегнул, но задержка в 1-3 секунды есть всегда. Зато иногда мы просто зависаем, и что-бы увидеть полученное сообщение приходится убивать процесс и запускать заново.
Комп не топовый, но и не старье, работается вполне нормально.
Для примера можно взять очередь на массиве, в которую пишет один поток, и из которой читает другой. Синхронизация памяти очереди происходит неявно с помощью индексов на первый/последний элементы очереди. Но, насколько я понимаю, в Rust'е все равно придется ставить мьютекс, что бы считать/записать данные?
Кстати, заинтересовало, как эти проверки выполняются для переменной, которая используется в уже скомпилированном коде. Или такой ситуации вообще не возникает?
На счет пощупать — DLSS уже, насколько я знаю, есть в Unreal'е, для рейтрейсинга вообще полное API в DX12. Чего Вам не хватает для пощупать?
Вы написали «рейтрейсинг 4K60fps». Я должен был по-быстрому прикинуть архитектуру рендер-движка? Не говоря уже о том, что фреймтайм тут очень сильно зависит от сложности сцены.
*одно два десятилетия
Рейтрейсинг сложно назвать ненужным, но на текущий момент он определенно недостаточно мощный, что бы справляться с тенями/отражениями/освещением в нормальном качестве даже с брутальными хаками.
Про DLSS молчат, потому что его поддержка ограничивается тем, что его по-быстрому вкрутили в Unreal.
Они не дешевеющие от слова «совсем»))
Можно поподробнее? Я ведь вроде все что угодно с потоками делать могу.
Во-вторых, мнение он все равно высказывает, просто в другом месте — выше была ссылка. (Я по ней не ходил, но пишут, что так и есть.)
А «все эти этосы и телосы» — это не аргументы, это понятия из философии, с помощью которых автор объясняет характер текущей ситуации. И честно говоря, лично мне сложно интерпретировать «эти общие разглагольствования» в чторону CoC, может расскажете, как это у Вас получилось?
А вот эта цитата выражает весь ужас проблемы:
Жаль, что вариант «забить на кучку плебеев и спокойно заниматься своим делом дальше» теперь недоступен.
А вообще мне кажется, Вы с VolCh о разных вещах говорите. Вы — о времени выполнения, а он — о времени разработки.
Если что, «квалифицированный специалист» употребляется в смысле человека, который хорошо разбирается в экосистеме, в которой работает, и следовательно умеет в оптимизацию.
И проблема не в том, что оптимизация занимает много времени, она на самом деле много времени не занимает. Но вот чего она требует — так это много мозгов и много понимания работы используемого инструментария. Проблема в том, что сейчас модно не голову включать, а выстраивать красивые абстракции на тоннах фреймворков, чем большинство и занимается.
Кстати, хотелось бы пример оптимизированного софта, который невозможно использовать, и взлетевшего не оптимизированного аналога, но это больше к NIKOSV.
Справедливости ради, возможно на счет 5 секунд я и перегнул, но задержка в 1-3 секунды есть всегда. Зато иногда мы просто зависаем, и что-бы увидеть полученное сообщение приходится убивать процесс и запускать заново.
Комп не топовый, но и не старье, работается вполне нормально.