· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Работа с КЭШЕМ!!!

<< . 1 . 2 . 3 . 4 . 5 . >>

Посл.отвђт Сообщенiе


Дата: Июл 16, 2003 17:11:46

Так что наш вождь скажет по поводу 16 битных значений??? чтобы все прошло без потерь!!!! (как говорится теория без практики ничто) Так вот в Агнере Фоге мало практики!! Очень мало!! А на все письма которые ему пришли он не отвечает!!!(ну я имею в виду по практике) ГОВОРИТ ДУМАЙТЕ САМИ!! Это же в корне не правильно!! предлагаю не сердиться на него а именно ДОПОЛНИТЬ его книгу!!!


Дата: Июл 16, 2003 17:19:09

;[mas+esi+32+16] должно быть в кеше, потому что было
; [mas+esi+32]
если можешь поясни эти твои соображения!!!


Дата: Июл 16, 2003 18:08:44

Ну ты хотел на молоко!! Вот тебе информация к размышлению!!!!!!
Твой код на 20 процентов медленее выполняется чем мой!!! А знаешь почему!! Нам на этот вопрос ответит затронутый Агнер ФОг : Да потому что за счет большего обращения к памяти! :-))! А что ты пишешь идет работа с КЭШЕМ это не то!!! Работу с кэшем определяют ряд команд, которые входят в набор команд SSE!!!! Чем не пища для размышления!! А как тема этого раздела называется : РАБОТА С КЭШЕМ!! Т.е. мы потаптались на месте и все!!!!
Ну так кто нибудь знает как работать с кэшем???


Дата: Июл 16, 2003 18:27:52 · Поправил: Edmond

emergenter
Так вот в Агнере Фоге мало практики!! Очень мало!! А на все письма которые ему пришли он не отвечает!!!(ну я имею в виду по практике
Вы что ему письма пишите?
:))))))))))))))))))))))))
Я ему сочувствую.

Ну вот наконец-то ты прочитал :)))
А насчёт обращения к памяти, то этот код нужно просто прооптимизировать нужным образом. А как это сделать, думаю и сам догадаешься.

P.S
Да, и ещё. Я переустанавливаю всё что можно так что извиняйте. Занят


Дата: Июл 16, 2003 18:35:54

emergenter
Кстати на счёт молока и насчёт кеша.
Мой постинг более чем в силе.
Единственное что нужно сделать это переставить команды чтения нужным образом, формируя лучшие условия для кеша.
Вот так-то...

Работу с кэшем определяют ряд команд, которые входят в набор команд SSE!!!!

И какие? И что они определяют?


Дата: Июл 16, 2003 19:14:35

Вот вот!! А говоришь что читал Агнера!! Ты сам то его не читал!! В этом руководстве черным по белому написано!!
ПОЖАЛУЙСТА НЕ ПОСЫЛАЙТЕ МНЕ ВАШИ ВОПРОСЫ О ПРОГРАММИРОВАНИИ. Я НЕ СОБИРАЮСЬ ДЕЛАТЬ ЗА ВАС ВАШУ ДОМАШНЮЮ РАБОТУ!!!!!!


Дата: Июл 16, 2003 19:16:34

Edmond
КАКОЙ там кэш?????? СКАЖИ мне пожалуйста!!! ЭТО РЕГИСТРЫ!!!! XMM!!! А кэш это кэш!!!! можно из кэша загрузить в регистры!!! а ты сразу в регистры посылаешь!!!! И от перестановки этих команд толку не будет!!! Т.к. все они по 2 мопа!!!!


Дата: Июл 16, 2003 19:18:13

Edmond
А инструкции по кэшу приведены везде!!
Это
prefetcht0
prefetcht1
prefetcht2
prefetchnta
Вот скажи с каким ты КЭШЕМ в данном случае работал???


Дата: Июл 16, 2003 19:20:05

Ну ты давай не уходи от темы!!! Нельзя стыдиться того чего не знаешь!! Надо признавать и свои ошибки!! Предлагаю вместе разбираться!!!


Дата: Июл 16, 2003 19:51:49

Вроде бы для этих целей предназначен Интеловский vTune. Вы его не пробовали?


Дата: Июл 16, 2003 19:58:37

emergenter
Послушайте, уважаемый.

Либо вы зарубите себе на носу, что до того как написать постинг нужно что-то самому понять, либо мы будем с вами сильно ссорится.
Я приравниваю такое ваше отношение минимум к хамству, максимум к невежеству.

КАКОЙ там кэш?????? СКАЖИ мне пожалуйста!!! ЭТО РЕГИСТРЫ!!!! XMM!!! А кэш это кэш!!!! можно из кэша загрузить в регистры!!! а ты сразу в регистры посылаешь!!!! И от перестановки этих команд толку не будет!!! Т.к. все они по 2 мопа!!!!

1. "Какой такой кеш"...
Расскажи мне пожалуста как работает кеш.
Я вообще не понимаю, как можно говорить о "знании теории" при таких вопросах?

2. Ты смотрел производительность команд?

3. Явно не в твоей компетенции судить о том, что мне известно, а что нет.

4. Я никуда и ни от кого не уходил.
Кстати в отличие от Вас уважаемый, так как Вы почему то до сих пор не удосужились сунуть свой нос сюда:

http://www.wasm.ru/article.php?article=1010008



Кэш данных состоит из 256 или 512 рядов по 32 байта в каждом. Каждый раз, когда вы считываете элемент данных, который еще не находится в кэше, процессор считает весь кэш-ряд из памяти.



Нельзя стыдиться того чего не знаешь!!
Мне интересно с какой целью это было написано?
Я похож на Бога, чтобы мне стыдится своего не знания?
Объясните?
Каждый свой постинг я обдумываю и проверяю по мере сил.
И я ещё должен сдыдится того, что там ошибки?
Это позицию халявщиков.
Надо признавать и свои ошибки!!
Надо читать ВНИМАТЕЛЬНО!!!!
Я три раза написал, что код мой сырой, и что его нужно проверить и оптимизировать на месте (то есть с отладчиком)
Что мне разбираться.
Я предоставил вам достаточно интересное решение (старое как мир правда).
Если всё грамотно продумать, то выйгрышь будет неплох.

Вот вот!! А говоришь что читал Агнера!! Ты сам то его не читал!! В этом руководстве черным по белому написано!!
ПОЖАЛУЙСТА НЕ ПОСЫЛАЙТЕ МНЕ ВАШИ ВОПРОСЫ О ПРОГРАММИРОВАНИИ. Я НЕ СОБИРАЮСЬ ДЕЛАТЬ ЗА ВАС ВАШУ ДОМАШНЮЮ РАБОТУ!!!!!!


Не позорьте себя пожалуста.
No Comments

P.S
Предлагаю вместе разбираться!!!
Не в чем там особенно разбиратся.
Там нужно работать и отлаживать.
Вот давайте после того, как у вас получится понять почему -20% - вы напишите сюда постинг, и тогда я ПРИЗНАЮ ВСЕ СВОИ ОШИБКИ :))))


Дата: Июл 16, 2003 21:56:45

Ты хозяин сайта тебе виднее!!


Дата: Июл 17, 2003 10:32:47

Ну причём здесь хозяин?
Это в переводе значит: "Ты козёл, тебе виднее" :)))
Я вижу вы так ничего и не поняли.

ОК. Посмотрите лучше этот вариант.
Я катал его на быструю руку, так что на ошибки не жалуйтесь.

Кстати, его можно улучшить
;; Перевернуть цикл верх ногами.


mov  esi,size mas-? ;; ЭЭЭ сомневаюсь.. 
;; сколько надо минус.
mov  edi,size ma1-4-4  ;;

Тогда конец цикла будет таким
sub 	esi,16*4
sub 	edi,4*4
jnz short cicl 


.code 
mov ecx,250/4 
xor esi,esi 
xor edi,edi 

ALIGN 16
cikl: 

movaps 		xmm0,[mas2+edi]   	
movaps 		xmm7,[mas+esi+32]    	
movaps		xmm6,[mas+esi+32+16]
movaps		xmm3,xmm0
movaps		xmm2,xmm0

shufps		xmm3,xmm0,11111111b 

movaps 		xmm5,[mas+esi+16]

mulps 		xmm3,xmm6

shufps		xmm2,xmm0,10101010b 

movaps		xmm1,xmm0

mulps 		xmm2,xmm7

movaps 		[rez+48],xmm3 

shufps		xmm1,xmm0,01010101b

movaps		xmm7,[mas+esi]

shufps		xmm0,xmm0,00000000b

mulps 		xmm1,xmm5  

movaps 		[rez+32],xmm2 

mulps 		xmm0,xmm7

movaps 		[rez+16],xmm1 

movaps 		[rez+0h],xmm0

add 	esi,16*4
add 	edi,4*4
dec	ecx
jnz short cicl 

end: 


Дата: Июл 19, 2003 16:17:26

Cache (запас) обозначает быстродействующую буферную память между процессором и основной памятью. Кэш служит для частичной компенсации разницы в скорости процессора и основной памяти - туда попадают наиболее часто используемые данные. Когда процессор первый раз обращается к ячейке памяти, ее содержимое параллельно копируется в кэш, и в случае повторного обращения в скором времени может быть с гораздо большей скоростью выбрано из кэша. При записи в память значение попадает в кэш, и либо одновременно копируется в память (схема Write Through - прямая или сквозная запись), либо копируется через некоторое время (схема Write Back - отложенная или обратная запись). При обратной записи, называемой также буферизованной сквозной записью, значение копируется в память в первом же свободном такте, а при отложенной (Delayed Write) - когда для помещения в кэш нового значения не оказывается свободной области; при этом в память вытесняются наименее используемая область кэша. Вторая схема более эффективна, но и более сложна за счет необходимости поддержания соответствия содержимого кэша и основной памяти.


Дата: Июл 19, 2003 16:21:09

В SSE введены новые инструкции управления кэшированием: появились инструкции записи содержимого регистров MMX и XMM в память минуя кэш, что позволяет избегать излишнего загрязнения кэш-памяти. Появилась и возможность "закачивать" требуемые данные в кэш до инструкций, их использующих.

<< . 1 . 2 . 3 . 4 . 5 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.070