|
0 / 0 / 3
Регистрация: 04.11.2016
Сообщений: 107
|
||||||
Есть ли simd команды для синуса?22.09.2021, 09:08. Показов 3116. Ответов 24
Метки нет (Все метки)
Я уже наигрался с SIMD SSE командами, надоело умножать двухчисловые векторы, захотелось чего-нибудь интересного.
0
|
||||||
| 22.09.2021, 09:08 | |
|
Ответы с готовыми решениями:
24
Какие есть команды для заполнения таблиц?
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||
| 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 файла Есть ли общие команды для таких вот вещей (без проверки всего массива)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|