|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||||||
Есть ли simd команды для синуса?22.09.2021, 09:08. Показов 3077. Ответов 24
Метки нет (Все метки)
Я уже наигрался с SIMD SSE командами, надоело умножать двухчисловые векторы, захотелось чего-нибудь интересного.
0
|
||||||
| 22.09.2021, 09:08 | |
|
Ответы с готовыми решениями:
24
Какие есть команды для заполнения таблиц?
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 29.09.2021, 23:37 | ||
|
Evg, в общем-то пояснения даны также в интеловском мануале.
0
|
||
|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||
| 30.09.2021, 00:02 [ТС] | ||
|
Далее, я сейчас изучаю интинсики на C, в смысле все что поддерживаются моим процем, так как я такой человек, для которого качество работы имеет больший вес, чем готовность, программирую на непрофессиональной основе. Так значит, нужно создавать собственную реализацию синуса, если уж сильно нужно ворочаться с ними?
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 30.09.2021, 01:52 | |
|
blogerjackpraid, стандарт C++ не предоставляет вычислений синуса с типами данных точнее long double. То есть да, самому. Вопрос только в целесообразности - абсолютной точности всё равно не будет, а длительность вычислений при увеличении числа значащих бит возрастает экспоненциально. Потому в тех же графических движках как правило используется float - его очень быстро считать.
0
|
|
|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
|
| 30.09.2021, 10:15 [ТС] | |
|
Дело в том, что SIMD использует упакованные float-данные, то есть восемь float числа упакованы в 256 битный регистр, и над ними производятся математические операции с использованием таких же 256 битных регистров, как я понял, ymm0-15.
0
|
|
|
|
||
| 30.09.2021, 20:42 | ||
|
Добавлено через 16 минут Да, забыл сказать касаемо вычисления синуса в игровых движках. Я не игродел, но что-то сам понимаю, а что-то в книжках читал Если посмотреть на игры 80-90-х годов, то в те времена игровые движки действительно содержали таблицы заранее вычисленных синусов. Условно говоря, таблица из 90 элементов для синусов углов в 0 градус, 1 градус, 2 градуса, ... Т.е. вычисление синуса сводилось к чтению нужного элемента из таблицы, а угол вполне можно было хранить в целочисленной переменной. В играх тех времён игровые объекты были очень примитивными, в итоге процесс обработки такого объекта был чуть ли не соизмерим по времени с вычислением синуса. Поэтому в таких условиях быстрое вычисление синуса было архиважно, а дискретности угла поворота в условный 1 градус было достаточно. Если нужно более точно, то просто увеличить таблицу, а угол измерять в целочисленных попугаях, где 1 попугай равен, например, 0.25 градуса В современных игровых движках объекты уже намного более сложные. И однократное вычисление синуса на фоне рассчёта всего объекта уже занимает мизерное время. На процессоре обычно делается только моделирование (т.е. расположение вершин модели в пространстве). Для этого достаточно ограниченное количество раз вычислить синусы-косинусы угла, сформировать матрицу поворота, а дальше идёт большой набор операций умножения и сложения (умножение матрицы объекта на матрицу поворота). Поскольку современный игровой объект содержит довольно много вершин, то на матричных умножений вычисление синуса занимает относительно мало времени. И даже при этом у меня нет уверенности в том, что для этого пользуются именно стандартными библиотечными тригонометрическими функциями. Вполне может быть и так, что используются собственные реализации, работающие по упрощённым алгоритмам, которые вычисляют недостаточно точно (например, с точностью в три десятичных знака после запятой), но быстро. Процесс отрисовки объекта делается уже на видеокарте. Там для хорошего моделирования освещения синусы нужно вычислять очень часто. И вот там векторный синус должен быть сильно востребован. Правда я не знаю, аппаратно он вычисляется, или программно. По субъективным ощущениям мне кажется, что всё-таки программно
0
|
||
| 30.09.2021, 20:42 | |
|
Какие есть команды для перемещения по записям таблиц? Что такое синхронное распараллеливание для SIMD Какие есть команды служащие для создания структуры таблиц? Есть ли в Python команды похожие на wawrite, только для avi файла Есть ли общие команды для таких вот вещей (без проверки всего массива)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|