OSDev

для всех
Текущее время: 14 дек 2017, 17:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 06 сен 2012, 18:50 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Технология SSE есть в каждом процессоре, я решил сделать просчёт и отрисовку шрифтов на ней, после изучения некоторых сайтов. Попробую увеличить производительность в 4 раза, т.к. там параллельно считается 4 точки.
Только как я понял минус в том, что этой технологии может и не быть, а кстати в какие в AVL добавили фишки?
http://www.ixbt.com/video/rt-raytracing.shtml
[url]http://www.programmersclub.ru/Введение-в-sse/[/url]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2012, 08:57 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
После изучения этой статьи http://www.ixbt.com/cpu/sse3.shtml мне вообще стало не по себе, в компиляторах C++ без использования специальных библиотек очень плохо используется конвеерность вычисления чисел с плавающей точкой и специальных инструкция sse3-5 для геометрических преобразований. О какой параллельности вообще может идти речь, если программист в большей своей массе ещё не задумался даже об этом малом, а без этих знаний в CUDA делать нечего, а там уже не 4, а 50-... вычислений за такт.
Интеловцы получается предлагают очень облегчённый вариант распараллеливания, путём вставки каких то функций типа стартраспаралель в начале и стоппаралель в конце цикла, да это же полный бред, а мозгами шевелить та кто будет. Ну поставит программист эти доп функции и типа хорошо, если уж этой темой пользоваться то нужно действительно нормально задуматься какие задачи более эффективно параллеляться и как, вплоть до каждого такта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2012, 13:27 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Я так понял, что SSE3 есть везде и можно пользоваться ею даже без проверки. У кого нибудь есть примеры использования?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 сен 2012, 18:59 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 208
Насколько помню, SSE3 есть везде, где есть x64 (и только там).
В случае нищебродов osdev'еров можно закладываться только на первый sse, да и то не факт.
У меня вот из моего железа только на основном ноуте SSE2 есть.

Цитата:
А я за русские термины.
Да-да, и не забываем комп называть "Персональная Электронно-Счётная Машина", wait, oh sh~, тут же тоже не исконно русские слова.
И да, вот то что меня возмутило - не термины. ИМХО, термины - то что общепринято. Собственно, ладно ещё говорить "Динамическая компиляция", "Компиляция на лету", "Двоичная трансляция", но не тот ужас.
Ладно, выздоравливай.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2012, 07:43 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Nable как всегда в своём репертуаре.
Я в инете нашёл пример использования sse3, в результате которого рисуется дракончик, думаю забить эти функции в свою ОС и протестировать.
Вложение:
дракон.jpg
дракон.jpg [ 10.72 КБ | Просмотров: 4945 ]

Кстати рисуется очень быстро без 3д ускорения, на одном конвейерном sse3.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 сен 2012, 03:42 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
В Delphi к сожалению с ассемблером плохо, инструкции sse есть тока с 6 версии, но там нету инструкций sse3, кто нибудь знает, есть они а следующих версиях.
haddps не понимает, хотя я точно знаю, что это в некоторых версиях Delphi канает, в каких?
procedure sse3d_dotproduct_xmm0_xmm1();
begin
asm
mulps xmm0, xmm1
// haddps xmm0, xmm0
// haddps xmm0, xmm0
end;
end;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 сен 2012, 18:47 

Зарегистрирован: 10 сен 2012, 18:39
Сообщения: 5
На многих amd x64 выпущеных в 2003,2004 годах нету sse3.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 сен 2012, 18:57 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Наткнулся вот на неплохую сборку истории развития процессоров
http://ru.wikipedia.org/wiki/X86
С этими sse было не мало путаницы, и сейчас 4 и 5 версии то есть то нет, но 3 уже везде, хотя не очень востребована, т.к. прирост даёт небольшой.
Хотя попрактиковаться на ней в параллельном вычислении интересно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 03:12 

Зарегистрирован: 10 сен 2012, 18:39
Сообщения: 5
Цитата:
прирост даёт небольшой
Именно, главное правильно заранее организовать данные.
С другой стороны,
1) если ты решил пропустить x86 32bit то наверно можешь пропустить всё вплоть до 2005 года, особено если учесть что amd менее распространено чем intel.
2) хрен знает когда твоя ось обретёт признание других


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 сен 2012, 04:20 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Разработка ОС сейчас без вариантов, этим ни кто не занимается, и не интересуется за исключением нескольких человек.
32 битность здесь ни причём, просто у всех уже двух ядерные ноуты в основном, а там всё есть.
Кстати от интел сейчас процессоры идут с APICом IOAPICом с несколькими ядрами со своими LAPIC встроенного графического ядра (полноценного) и даже контроллер памяти теперь там же. Недавно вышел Ivy, а уже говорят о новом поколении.
Тем не менее вся наследственность присутствует даже в интеловских смартфонах.

Для sse данные в идеале должны быть выровнены и в его регистрах можно хранить переменные и расчёт идет одной командой 4 переменных плюс нужно думать про кэш. В основном используется для просчёта всех координат (x,y,z,w) за одну команду, ещё бы сделали б несколько ядер sse для расчёта за один раз несколько расчётов. В инете есть сравнение скорости fpu и sse, и sse иногда в несколько раз, хотя составляя алгоритм с ним компилятор вставляет команды от fpu между ними и как это на скорость влияет.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB