Интересно, когда наступит момент, когда для вычислений проще будет подключить состояния 8-сегментного индикатора калькулятора к нейросети и на выходе получить другие состояния 8-сегментного индикатора
Речь не о распараллеливании потоков по CPU и не о GPU computing. Я имею ввиду другое, не наличие/отсутствие абстракций и сложность ими пользоваться, а чисто фундаментальную проблему, корень которой в самих методах работы современных игр.
Раньше, грубо говоря, пиксели на экране почти не зависели друг от друга, и их можно было считать независимо, что есть очень благоприятная почва для раскидывания по картам.
Сейчас в играх масса всевозможных шейдеров и эффектов, разных отложенных затенений и освещений, всяких экранных буферов нормалей и прочего, и пиксели зависят гораздо больше от своих соседей. Потому картам надо гораздо общаться между собой и ждать друг друга. Параллелим по половине экрана — надо читать другую половину — ждем‑качаем данные, параллелим по времени (четный‑нечетный кадр) — тем более всё плохо, потому что множество эффектов (например отражения в экранном пространстве или сглаживание TAA/TXAA) требуют знаний о предыдущем кадре. Везде затык. Даже в Half‑Life 2 были отражения в воде, которые создавали проблемы для SLI (хотя там можно было имхо выкрутиться, поделив экран вертикально, т.к. отражается всё сверху вниз — между картами почти ничего передавать не надо).
Поэтому вернуться оно может, если рендеринг снова станет менее связным, как раньше, например, из‑за трасировки лучей.
Тут не хватает подробностей, например, как именно происходит сопоставление 3D‑модели с выявленным контуром свиньи. То, что технология классная и поднимает такие‑то показатели на столько‑то процентов — это понятно, для этого всё и делается. Но хочется именно технические подробности узнать :)
Ну то есть вот у нас 2D‑картинка, мы скормили её ИИ — получили контур свиньи, далее, как я понимаю, данные направляются к другому ИИ, распознающему ключевые точки этой свиньи (лапы + голова + туловище) в 3D, далее 3D‑модель с помощью скелетной анимации и/или инверсной кинематики сопоставляется с этими ключевыми точками. А как, при этом, происходит определение массы? Есть какая‑то универсальная «анимация надувания свиньи», которая соответствует изменению формы свиньи когда она набирает вес, и её просто прогоняют до тех пор, пока контур сопоставленной 3D модели не будет больше всего совпадать с контуром того, что было выявлено на 2D картинке? А далее просто берётся объем и/или номер кадра этой «анимации надувания» и умножается на какой‑то коэффициент? И всё это на каждом шаге конвейера обработки обмазываем толстым слоем всяких удалятелей шума, подавителей всплесков и отсеивателей ошибок, и всё на CUDAх и видеокартах, чтобы было быстро?
Я просто фантазирую, как бы я это делал, но тут очень интересно было бы почитать про вот эту, сделанную по факту, уже реализованную на практике технологию. В допустимых коммерческой тайной пределах, конечно же.
а без NVlink разве можно объединять карты для нейронок/рендера?
Да, причём хоть 16 штук — пока линии PCIExpress не кончатся. Мостики SLI/NVLink, в основном, нужны для аппаратной синхронизации карт и некоторых мелочей. А так всё просто:
Взять карту А, асинхронно начать выполнение X на ней
Взять карту Б, асинхронно начать выполнение Y на ней
Дождаться завершения выполнения X
Дождаться завершения выполнения Y
Это поддерживается даже на уровне современных DirectX. В профессиональном секторе остались не только мостики для синхронизации карт в одном ПК, но и мостики для синхронизации множества карт, установленных в разные ПК.
Фишка на самом деле в том, что современная игра сложная, и её гораздо сложнее распределить по картам. Раньше всё было намного проще, всё считалось независимо и хорошо параллелилось, теперь ситуация иная, поэтому сложность существенно выше, прирост существенно меньше, поэтому и отказались.
Вернутся к нейросетям и/или лучам — вполне может вернуться. Лучи и нейросети, по крайней мере, в текущем варианте, параллелятся хорошо.
У меня долгое время был ПК с двумя GTX Titan (~GTX780 с большей памятью + непорезанными вычислениями fp64) и ещё GT 640 — на тот момент 700 поколение было самым новым.
Много карт для игр имеет смысл, когда одной топовой мало и надо с 20 fps добраться хотя бы до 60 fps (мой случай). В остальных случаях смысла нет.
В современных реалиях ситуация, когда одной топовой мало, вполне может себе быть (даже двух мало), но вот многовидеокартность похоронена. Причины этого расписывать не буду, вкратце — в современных играх прирост от двух и более карт сделать очень сложно, и разработчики заморачиваться над этим совсем не хотят. В старых играх прирост получить было просто, и он был, и был существенным.
Возможно, когда перейдут на связку трасировка лучей+нейросети, и откажутся от приблуд растеризации, многовидеокартность обретёт смысл и вернётся, но пока этот тренд (лучи+нейросети, или даже просто нейросети) только намечается.
Вряд ли бы он стал отрицать, что подобные абстракции, вне зависимости от возможности соотнесения их с реальным миром, могут быть полезны в качестве «гимнастики для ума», после которых он — ум — будет лучше и эффективнее оперировать уже правильными платоновскими понятиями.
Хм. А что есть понятие «НА САМОМ ДЕЛЕ»/«существует» по отношению к таким абстрактным понятиям как «счётная мощность» и, тем более, «континуум»? По‑моему это уже игра на поле, где не обитают платонисты.
Имхо смысл тут скорее в том, можем ли мы что‑нибудь с этим полученным «существованием» сделать/доказать, решить какую‑нибудь задачу. И если «существует» достигнуто аксиоматически, то, в данном случае, от него нет почти никакой пользы (или, может, её просто не нашли/не искали), в то время как от труъ‑доказательства польза определённо есть — оно будет логически связано с остальными кусочками математики. От «аксиоматического» «существования» польза появляется, только если на базе этого можно построить новый раздел математики, который может то, что не могли другие. Для этого из аксиомы должно вырасти дерево доказательств разных полезных штук, в противном случае мы получаем просто бесполезное утверждение, принятое на веру и висящее в вакууме с парой‑тройкой таких же бесполезных следствий и теорем.
Если таковое существует, то ок, если не существует, создаём комплекс расширений математики, таких, в которых аксиоматически постулируется существование множества, мощность которого находится между счётной мощностью и континуум (так же, как, например, постулируется существование отрицательных или комплексных чисел) — теперь такое множество точно существует
Новый WinRAR лучше работает с современными вычислительными мощностями и тяжёлыми задачами, где много ОЗУ, много ядер и много данных. То есть, если, например, надо сжать 3 Тб файлов, то новый WinRAR сделает это лучше/быстрее, чем старый, потому что большие словари/инструкции/параллелизм, и он спокойно может сожрать 200 Гб ОЗУ для лучшей эффективности сжатия, если это требуется.
Так я и говорю о том, что вот инструмент, его удобно применять тут и не удобно применять тут. Стиральная машина стирает сама, но загружать/выгружать шмот (пока) не у умеет.
3D принтер может напечатать крючок для полотенца, но не может напечатать вентилятор в сборе вместе с подшипниками и двигателями, потому что принтеров, которые печатают и проводником, и изолятором, пока ещё нету и делать почему‑то никто особо не торопится (хотя, имхо, когда это появится массово, это перевернёт мир похлеще появления паровых двигателей — много чего электромеханического можно будет печатать по тупо по слоям, поменяются сами принципы электромеханики). Но это не значит, что 3D принтеры — плохие, и «точность и вероятность» решения проблемы там маленькая. Есть круг того, что они могут напечатать. Который постепенно растёт.
Мне надо было на C++ написать поиск процессов через WinAPI — я пнул ChatGPT, он написал код, код работает. Я бы его сам написал, но не за минуту, а подольше, потому что надо курить доки WinAPI. Мне надо было по документации на 50 страниц ответить на вопрос как конфигурировать то‑то — он дал ответ, причем почти мгновенно. Инструмент работает? Работает.
А есть масса ситуаций, где он не работает. Это вполне нормально, таким свойством обладает любой инструмент созданный человечеством. Она ошибается, она косячит, она несёт лютую дичь и её надо перепроверять. А люди разве так не делают? Вот‑вот.
Если одни начинают продавать лопаты и орать что лопата может всё, и варить двери, и суп, и пускать спутники, и рыть ямы, и мяукать, и ей можно бриться и красить дома, и вы должны немедленно её купить, и они, при этом, не правы — это вовсе не означает, что лопата не может делать вообще ничего.
Пока одни говорят, что по формуле Циолковского можно доказать, что лопата не может запускать спутники, и добавляют, что она ни разу ещё не мяукнула, связывая это с отсутствием усов, кто‑то уже копает котлован под третий дом.
Причина, по которой этот инструмент называют «интеллектом», заключается в особенностях мира, в котором мы живём: сделал что‑то → надо это продать. А слово «интеллект» очень хорошо помогает донести до большинства полезность инструмента. Да, это преувеличение. Но нет, тот факт, что это преувеличение, не является доказательством того, что этот инструмент не решает задачи.
Он решает определённый круг задач. Который постепенно растёт.
Вам шашечки или ехать? Знаний нет, сознания нет, понимания нет. Какая разница? Она решает задачу? Решает. С вот такой вот точностью и вероятностью. И быстрее чем мясной человек. Не везде. Вот это ещё не может. И вот это. А это может. Вот тут и используем. Может быть, что с увеличением количества параметров она догонит и перегонит мозг. А может быть и нет.
Не обязательно быть мозгом, чтобы действовать как мозг.
Имею стол с регулировкой высоты. Как стол с регулировкой высоты удобно: для игр пониже, для работы повыше. Ещё можно убрать клавиатуру и использовать как подъемную платформу для системного блока, когда в нём надо что‑то перебрать. А вот работать стоя (даже с ноутбуком) — не удобно. Плюс я так и не нашёл научного подтверждения что работа стоя это хорошо, но, наверное, плохо искал :)
Интересно, когда наступит момент, когда для вычислений проще будет подключить состояния 8-сегментного индикатора калькулятора к нейросети и на выходе получить другие состояния 8-сегментного индикатора
Речь не о распараллеливании потоков по CPU и не о GPU computing. Я имею ввиду другое, не наличие/отсутствие абстракций и сложность ими пользоваться, а чисто фундаментальную проблему, корень которой в самих методах работы современных игр.
Раньше, грубо говоря, пиксели на экране почти не зависели друг от друга, и их можно было считать независимо, что есть очень благоприятная почва для раскидывания по картам.
Сейчас в играх масса всевозможных шейдеров и эффектов, разных отложенных затенений и освещений, всяких экранных буферов нормалей и прочего, и пиксели зависят гораздо больше от своих соседей. Потому картам надо гораздо общаться между собой и ждать друг друга. Параллелим по половине экрана — надо читать другую половину — ждем‑качаем данные, параллелим по времени (четный‑нечетный кадр) — тем более всё плохо, потому что множество эффектов (например отражения в экранном пространстве или сглаживание TAA/TXAA) требуют знаний о предыдущем кадре. Везде затык. Даже в Half‑Life 2 были отражения в воде, которые создавали проблемы для SLI (хотя там можно было имхо выкрутиться, поделив экран вертикально, т.к. отражается всё сверху вниз — между картами почти ничего передавать не надо).
Поэтому вернуться оно может, если рендеринг снова станет менее связным, как раньше, например, из‑за трасировки лучей.
Тут не хватает подробностей, например, как именно происходит сопоставление 3D‑модели с выявленным контуром свиньи. То, что технология классная и поднимает такие‑то показатели на столько‑то процентов — это понятно, для этого всё и делается. Но хочется именно технические подробности узнать :)
Ну то есть вот у нас 2D‑картинка, мы скормили её ИИ — получили контур свиньи, далее, как я понимаю, данные направляются к другому ИИ, распознающему ключевые точки этой свиньи (лапы + голова + туловище) в 3D, далее 3D‑модель с помощью скелетной анимации и/или инверсной кинематики сопоставляется с этими ключевыми точками. А как, при этом, происходит определение массы? Есть какая‑то универсальная «анимация надувания свиньи», которая соответствует изменению формы свиньи когда она набирает вес, и её просто прогоняют до тех пор, пока контур сопоставленной 3D модели не будет больше всего совпадать с контуром того, что было выявлено на 2D картинке? А далее просто берётся объем и/или номер кадра этой «анимации надувания» и умножается на какой‑то коэффициент? И всё это на каждом шаге конвейера обработки обмазываем толстым слоем всяких удалятелей шума, подавителей всплесков и отсеивателей ошибок, и всё на CUDAх и видеокартах, чтобы было быстро?
Я просто фантазирую, как бы я это делал, но тут очень интересно было бы почитать про вот эту, сделанную по факту, уже реализованную на практике технологию. В допустимых коммерческой тайной пределах, конечно же.
Ну так можно про многое сказать, всё таки современное ПО часто изобилует абстракциями.
NVLink может в доступ к памяти соседней карты (в отличие от простого SLI мостика), собственно, в таких вот ящиках толпа GPU соединяется как раз им.
Да, причём хоть 16 штук — пока линии PCIExpress не кончатся. Мостики SLI/NVLink, в основном, нужны для аппаратной синхронизации карт и некоторых мелочей. А так всё просто:
Взять карту А, асинхронно начать выполнение X на ней
Взять карту Б, асинхронно начать выполнение Y на ней
Дождаться завершения выполнения X
Дождаться завершения выполнения Y
Это поддерживается даже на уровне современных DirectX. В профессиональном секторе остались не только мостики для синхронизации карт в одном ПК, но и мостики для синхронизации множества карт, установленных в разные ПК.
Фишка на самом деле в том, что современная игра сложная, и её гораздо сложнее распределить по картам. Раньше всё было намного проще, всё считалось независимо и хорошо параллелилось, теперь ситуация иная, поэтому сложность существенно выше, прирост существенно меньше, поэтому и отказались.
Вернутся к нейросетям и/или лучам — вполне может вернуться. Лучи и нейросети, по крайней мере, в текущем варианте, параллелятся хорошо.
Если бы оно работало как раньше, то стоило бы. Но оно больше не работает:(
У меня долгое время был ПК с двумя GTX Titan (~GTX780 с большей памятью + непорезанными вычислениями fp64) и ещё GT 640 — на тот момент 700 поколение было самым новым.
Много карт для игр имеет смысл, когда одной топовой мало и надо с 20 fps добраться хотя бы до 60 fps (мой случай). В остальных случаях смысла нет.
В современных реалиях ситуация, когда одной топовой мало, вполне может себе быть (даже двух мало), но вот многовидеокартность похоронена. Причины этого расписывать не буду, вкратце — в современных играх прирост от двух и более карт сделать очень сложно, и разработчики заморачиваться над этим совсем не хотят. В старых играх прирост получить было просто, и он был, и был существенным.
Возможно, когда перейдут на связку трасировка лучей+нейросети, и откажутся от приблуд растеризации, многовидеокартность обретёт смысл и вернётся, но пока этот тренд (лучи+нейросети, или даже просто нейросети) только намечается.
Пытались NVLink в потребительские завести. Последняя где это было — RTX 3090
Вряд ли бы он стал отрицать, что подобные абстракции, вне зависимости от возможности соотнесения их с реальным миром, могут быть полезны в качестве «гимнастики для ума», после которых он — ум — будет лучше и эффективнее оперировать уже правильными платоновскими понятиями.
Хм. А что есть понятие «НА САМОМ ДЕЛЕ»/«существует» по отношению к таким абстрактным понятиям как «счётная мощность» и, тем более, «континуум»? По‑моему это уже игра на поле, где не обитают платонисты.
Имхо смысл тут скорее в том, можем ли мы что‑нибудь с этим полученным «существованием» сделать/доказать, решить какую‑нибудь задачу. И если «существует» достигнуто аксиоматически, то, в данном случае, от него нет почти никакой пользы (или, может, её просто не нашли/не искали), в то время как от труъ‑доказательства польза определённо есть — оно будет логически связано с остальными кусочками математики. От «аксиоматического» «существования» польза появляется, только если на базе этого можно построить новый раздел математики, который может то, что не могли другие. Для этого из аксиомы должно вырасти дерево доказательств разных полезных штук, в противном случае мы получаем просто бесполезное утверждение, принятое на веру и висящее в вакууме с парой‑тройкой таких же бесполезных следствий и теорем.
Если таковое существует, то ок, если не существует, создаём комплекс расширений математики, таких, в которых аксиоматически постулируется существование множества, мощность которого находится между счётной мощностью и континуум (так же, как, например, постулируется существование отрицательных или комплексных чисел) — теперь такое множество точно существует
Новый WinRAR лучше работает с современными вычислительными мощностями и тяжёлыми задачами, где много ОЗУ, много ядер и много данных. То есть, если, например, надо сжать 3 Тб файлов, то новый WinRAR сделает это лучше/быстрее, чем старый, потому что большие словари/инструкции/параллелизм, и он спокойно может сожрать 200 Гб ОЗУ для лучшей эффективности сжатия, если это требуется.
На малых объёмах данных разницы, имхо, нет.
Так я и говорю о том, что вот инструмент, его удобно применять тут и не удобно применять тут. Стиральная машина стирает сама, но загружать/выгружать шмот (пока) не у умеет.
3D принтер может напечатать крючок для полотенца, но не может напечатать вентилятор в сборе вместе с подшипниками и двигателями, потому что принтеров, которые печатают и проводником, и изолятором, пока ещё нету и делать почему‑то никто особо не торопится (хотя, имхо, когда это появится массово, это перевернёт мир похлеще появления паровых двигателей — много чего электромеханического можно будет печатать по тупо по слоям, поменяются сами принципы электромеханики). Но это не значит, что 3D принтеры — плохие, и «точность и вероятность» решения проблемы там маленькая. Есть круг того, что они могут напечатать. Который постепенно растёт.
Мне надо было на C++ написать поиск процессов через WinAPI — я пнул ChatGPT, он написал код, код работает. Я бы его сам написал, но не за минуту, а подольше, потому что надо курить доки WinAPI. Мне надо было по документации на 50 страниц ответить на вопрос как конфигурировать то‑то — он дал ответ, причем почти мгновенно. Инструмент работает? Работает.
А есть масса ситуаций, где он не работает. Это вполне нормально, таким свойством обладает любой инструмент созданный человечеством. Она ошибается, она косячит, она несёт лютую дичь и её надо перепроверять. А люди разве так не делают? Вот‑вот.
Если одни начинают продавать лопаты и орать что лопата может всё, и варить двери, и суп, и пускать спутники, и рыть ямы, и мяукать, и ей можно бриться и красить дома, и вы должны немедленно её купить, и они, при этом, не правы — это вовсе не означает, что лопата не может делать вообще ничего.
Пока одни говорят, что по формуле Циолковского можно доказать, что лопата не может запускать спутники, и добавляют, что она ни разу ещё не мяукнула, связывая это с отсутствием усов, кто‑то уже копает котлован под третий дом.
Причина, по которой этот инструмент называют «интеллектом», заключается в особенностях мира, в котором мы живём: сделал что‑то → надо это продать. А слово «интеллект» очень хорошо помогает донести до большинства полезность инструмента. Да, это преувеличение. Но нет, тот факт, что это преувеличение, не является доказательством того, что этот инструмент не решает задачи.
Он решает определённый круг задач. Который постепенно растёт.
Вам шашечки или ехать? Знаний нет, сознания нет, понимания нет. Какая разница? Она решает задачу? Решает. С вот такой вот точностью и вероятностью. И быстрее чем мясной человек. Не везде. Вот это ещё не может. И вот это. А это может. Вот тут и используем. Может быть, что с увеличением количества параметров она догонит и перегонит мозг. А может быть и нет.
Не обязательно быть мозгом, чтобы действовать как мозг.
Главное не уронить
Соглашусь, менять положение лучше чем не менять, но имхо, по‑нормальному лучше просто спортом заниматься, или гулять хотя бы.
А связанных со стоячей работой разве нет?
Имею стол с регулировкой высоты. Как стол с регулировкой высоты удобно: для игр пониже, для работы повыше. Ещё можно убрать клавиатуру и использовать как подъемную платформу для системного блока, когда в нём надо что‑то перебрать. А вот работать стоя (даже с ноутбуком) — не удобно. Плюс я так и не нашёл научного подтверждения что работа стоя это хорошо, но, наверное, плохо искал :)
Но это ИМХО.