Войти
ПрограммированиеФорумОбщее

MemTest 64/128 (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
23:44, 17 авг. 2019
d:\temp\memtest>MemSpeed64.exe
MemSpeed(64/128) by eDmk, 2019

Exception Exception in module MemSpeed64.exe at 00000000001460A4.
[Mem64]. Ошибка: 1455.


это почему?
#16
0:20, 18 авг. 2019

eDmk
> Зачем? Это подсказка для загрузки кода.
Это подсказка для загрузки данных в кеш, никогда не видел, чтобы его использовали для кода.
Я, вообще, не уверен, что он работает с кешем инструкций.

А вот для данных, например, правильный prefetch ускорил сортировку раза в два.

> В современных процессорах уже auto-prefetch работает.
Вот это может быть — для линейного доступа к памяти, возможно, ручной prefetch будет бесполезен.
Но проверить и поэкспериментировать со смещениями стоит.

#17
(Правка: 0:37) 0:33, 18 авг. 2019

Mahagam
> это почему?
Обновил архив и описание возможной ошибки в нулевом посте.
OleServer скорее всего. Используется WMI, чтобы название мат. платы извлечь.
В новом архиве EXE принимает параметр -WMI. Это отключает подключение к OleServer'у.

Хотя судя по номеру ошибки у вас может быть отключен файл подкачки.

ERROR_COMMITMENT_LIMIT
1455 (0x5AF)
The paging file is too small for this operation to complete.
#18
0:42, 18 авг. 2019

PREFETCHh—Prefetch Data Into Caches
T0 (temporal data)—prefetch data into all levels of the cache hierarchy.
— Pentium III processor—1st- or 2nd-level cache.
— Pentium 4 and Intel Xeon processors—2nd-level cache.

У меня почти нет данных. Префетч бесполезен в моем случае.

#19
1:47, 18 авг. 2019

eDmk
> Префетч бесполезен в моем случае.
На моем процессоре при линейном занулении памяти prefetchw стабильно дает выигрыш в 5% для SSE/AVX вариантов. Другое дело, что это достаточно бесполезно, ибо stosb/stosq варианты быстрее раза в 2.

#20
9:43, 18 авг. 2019

кстати тут правильное использование префетча или нет?
умножение массива векторов на матрицу тут.

у меня как то особой разницы незаметно, очивидно проц при такой операции сам юзает префетч.

+ Показать

#21
12:25, 18 авг. 2019

Mira
> у меня как то особой разницы незаметно
И не будет заметно. Это заметно на ранних Pentium 4 и Pentium 3.
На всех современных авто-префетч. Использование префетч только тормоза вызовет,
т.к. в кэш L1-L2 данные проталкивает. По большей части совпадет с «желанием» процессора,
но иногда может и не совпасть. Проц в L0 хотел протолкнуть данные, а вы ему на L1 указали :)

#22
(Правка: 12:47) 12:47, 18 авг. 2019

Mira
У вас лишнего кода куча.

Вот умножение массива точек на матрицу:

+ Показать

#23
13:58, 18 авг. 2019

eDmk
потестю потом, как такое перемешивание скажется.
а матрицу лучше как const передавать.

#24
13:59, 18 авг. 2019

eDmk
> Хотя судя по номеру ошибки у вас может быть отключен файл подкачки.

да, файл подкачки отключен, а можно версию, чтобы его не требовало? Памяти должно хватить.

#25
14:52, 18 авг. 2019

Mahagam
> а можно версию, чтобы его не требовало?
Это не я требую. Это функция VirtualAlloc требует. Сейчас сделал по другому.

Обновил архив. Попробуйте новый вариант.

#26
14:54, 18 авг. 2019

Mira
> а матрицу лучше как const передавать.
Зачем?

Const создает в стеке копию, а так прям из переменной пишем.
Я же ее не модифицирую, поэтому мне const не нужен. А если вам так удобно - я не против :)

#27
16:41, 18 авг. 2019

eDmk
> Const создает в стеке копию, а так прям из переменной пишем.

как раз таки const передает ссылку, что в делфях что в лазарусе.
а вот при передаче переменной без указания var или const делфи оптимизирует, а лазарус свалит в стек))

но это так , отступление.
прогнал прогу она что в лог файл не пишет результаты чтоли, а только в консоль?
#28
17:11, 18 авг. 2019

Mira
> как раз таки const передает ссылку, что в делфях что в лазарусе.
Передает, но внутри функции или процедуры он делает копию переменных в стеке,
чтобы оригинальную переменную не портить.

Вот функция:

+ Показать

Вот дизасм:

+ Показать

#29
17:12, 18 авг. 2019

Mira
> только в консоль?
Пока только в консоль. Выделяешь мышкой текст и нажимаешь Enter.
В буфере скопированный текст.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее