Войти
ПроектыФорумОцените

SR64 (тестирование) (10 стр)

Страницы: 16 7 8 9 10 11 Следующая »
#135
18:51, 21 окт. 2019

Truthfinder

> Тебе зачем?
Очевидно, чтобы узнать, где я по твоему переврал.

> Психиатр, в неадекватные определять?
Мне все равно, адекватный ты или нет. Хотя, в качестве наблюдения: ты заостряешь на вопросе адекватности подозрительно много внимания.

#136
(Правка: 19:08) 19:08, 21 окт. 2019

Ghost2
> Очевидно, чтобы узнать, где я по твоему переврал.
Всё, начиная с того что я синьор

> Мне все равно, адекватный ты или нет. Хотя, в качестве наблюдения: ты
> заостряешь на вопросе адекватности подозрительно много внимания.
Мне все равно, программист ты или нет. Хотя, в качестве наблюдения: ты заостряешь на вопросе программистов подозрительно много внимания.

#137
20:02, 21 окт. 2019

Truthfinder

> Всё, начиная с того что я синьор
Я почему-то знал, что ты не сможешь.

#138
23:03, 21 окт. 2019

Ну ладно, поругались, а теперь для разнообразия подскажите мне, как правильно использовать MCA.
Вот взять то же умножение векторов на матрицу (транспонированную, мне показалось, что так быстрее). Gcc и Clang его компилируют по-разному, Gcc использует FMA, Clang нет, но зато разворачивает цикл.
https://godbolt.org/z/XgX-xP
https://godbolt.org/z/8CW8Hh
Как определить, какой вариант быстрее? На какой параметр MCA смотреть? Если Block RThroughput, то там разница в 3 с лишним раза, но это из-за шланговской развёртки, просто инструкций больше.

#139
(Правка: 11:16) 11:16, 22 окт. 2019

invis

> Как определить, какой вариант быстрее?
Смотреть надо на Total Cycles и на разницу между Dispatch Width и IPC.

#140
21:24, 22 окт. 2019

Total cycles и загруженность портов тоже отличаются слишком сильно.
Но ладно, я уже понял, что с развёртками анализатор не дружит. Если загнать в него тело цикла:
https://godbolt.org/z/8t7ltK
https://godbolt.org/z/Q2WvGW
то результаты ближе, но всё равно разные. Соотношение Total cycles 1.3, а по тестам разница в скорости 1.08 (в память вроде не упирается). И это мне ещё пришлось оторвать у шланга развёртку, с развёрткой скорость одинаковая.
В общем, пока такое ощущение, что проще протестировать, чем считать такты анализатором. Ну почитаю ещё статей по теме, может проникнусь в конечном итоге.

#141
7:07, 23 окт. 2019

invis

> И это мне ещё пришлось оторвать у шланга развёртку
Разверни вручную. Что-то типа:

#include <xmmintrin.h>

using vec4 = __m128;
using mat4 = __m128[4];

void veca_matrix4_mul(vec4* Sa, vec4* Da, mat4 M, int cnt)
{
    vec4 M0 = M[0];
    vec4 M1 = M[1];
    vec4 M2 = M[2];
    vec4 M3 = M[3];

    for (int n = 0; n < cnt; n += 4)
    {
        vec4 S0 = Sa[n + 0];
        vec4 S1 = Sa[n + 1];
        vec4 S2 = Sa[n + 2];
        vec4 S3 = Sa[n + 3];

        Da[n + 0] = (M0 * S0) + (M1 * S0) + (M2 * S0) + M3;
        Da[n + 1] = (M0 * S1) + (M1 * S1) + (M2 * S1) + M3;
        Da[n + 2] = (M0 * S2) + (M1 * S2) + (M2 * S2) + M3;
        Da[n + 3] = (M0 * S3) + (M1 * S3) + (M2 * S3) + M3;
    }
}

#142
13:19, 23 окт. 2019

Ну можно и вручную, хотя на практике (в более сложных случаях, чем вектора и матрицы) это нежелательное раздутие кода, ещё ведь хвост (остаток от 4-х) нужно обрабатывать.
И вообще-то там  (M0 * S0[0]) + (M1 * S0[1]) + (M2 * S0[2]) + M3, но не суть.
Кстати, не знал, что можно делать арифметику с интринсиковыми типами без расписывания вручную _mm_mul_ps/_mm_add_ps. MSVC (из godbolt) правда всё равно не собирает, может параметры какие-то нужны.

#143
13:42, 23 окт. 2019

invis
> может параметры какие-то нужны.

Вообще нельзя, там по другому реализовано. Нету этих модных __builtin. Но если очень хочется, можно самому допилить, как это сделано здесь: https://habr.com/ru/post/418247/.
Хотя для продакшена я бы не стал так делать. Плохая практика.

#144
(Правка: 11:42) 11:40, 3 дек. 2019

В первом посте обновлен архив с примером.
1. Ускорен и улучшен OBJ-загрузчик (Теперь грузятся мульти объектные OBJ из Blender и 3ds max).
2. Общая оптимизация и мелкие улучшения.
3. Устранена ошибка с загрузкой шрифта.

#145
13:54, 3 дек. 2019

Вроде работает.

#146
21:36, 3 дек. 2019

eDmk я наверное уже надоел, но... у меня снова не грузится шрифт, говорит что файл не найден, на этот раз в ошибке путь пишет верный, НО, в самом конце, после расширения стоит ТОЧКА, т.е. примерно так: C:\SR64\Media\Images\New_(12x12).tif.

#147
21:56, 3 дек. 2019

InfusionKRD
> снова не грузится шрифт
Даже не знаю что сказать.  Где была ошибка — нашел — она исправлена.
У меня работает, у других тоже работает. Из любой папки, с любого диска.
Путь выводил при загрузке - никаких точек нет. Проверял на Win7 и Win10.
Возможно у вас вирус или с диском чего. Не могу определить дистанционно.

#148
(Правка: 22:38) 22:21, 3 дек. 2019

eDmk Железо исправное. Вирусов и сбоев - нет...
Кстати, дело не в точке, загрузил свой скриншот с #4, там тоже в конце точка.
Остаётся только... кодировка?
Т.к. путь об отсутствии файла - полностью верный.

П.с.: создал новые папки, переименовал их в твои, файлы разложил как было, не помогло.
Пробовал переименовывать по разному файл шрифта (ну мало ли, может это не Икс а Х)... Тоже не помогло.

#149
23:42, 3 дек. 2019

InfusionKRD
Не знаю. Только у вас не работает.
У nes #145 все работает. И у других все работает.
С кодировкой все нормуль. Путь выводится без точки.
Не могу определить ошибку. Тем более, что я ее нашел и исправил.

Страницы: 16 7 8 9 10 11 Следующая »
ПроектыФорумОцените