реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
MicrowaveDesigne...
сообщение Feb 14 2010, 11:32
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 21-09-07
Пользователь №: 30 737



Цитата(cms @ Feb 14 2010, 10:17) *
Вот вчера посмотрел R2009b под win7x64 и порадовался - текущий MATLAB шустр и приятен. Хотя пару лет назад я был о нем такого же мнения.

ИМХО это субъективное ощущение сильно зависит от железа, на котором MATLAB пускается - i7 c 4 гигами ему вполне приятен.


Шустр и оно не удивительно! Ведь такие продукты как MATLAB пишуться ориентируясь на архитектуру (я имею ввиду разрядность) процессора. На 64 разрядном коде, во-первых, доступно больше оперативной памяти (а она никогда лишней не бывала). Если на 32 разрядной Винде доступно не более 3 ГБ оперативы, то 64 разрядные допускают уже до 192 ГБ. Во-вторых, математические операции будут выполняться быстрее в MATLAB'е на 64 разрядной версии ОС, т.к. числа, с которыми он работает, уже без проблем могут быть занесены в регистр процессора без разбивки (все-таки регистр в 2 раза больше). Да и доступно теперь в процессорах, поддерживающих архитектуру x64, больше регистров общего назначения + дополнительные регистры. wink.gif
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 14 2010, 12:43
Сообщение #17


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(MicrowaveDesigneR @ Feb 14 2010, 14:32) *
Во-вторых, математические операции будут выполняться быстрее в MATLAB'е на 64 разрядной версии ОС, т.к. числа, с которыми он работает, уже без проблем могут быть занесены в регистр процессора без разбивки (все-таки регистр в 2 раза больше). Да и доступно теперь в процессорах, поддерживающих архитектуру x64, больше регистров общего назначения + дополнительные регистры.

Второе сомнительно. Обе архитектуры (x32 и x64) считают на флоат-поинтах одинаково, т.к. у них FPP (float point processor) одинаков. А новый MatLab практически всю арифметику проворовачивает не в целых числах, а во флоатах, а там специализированные регистры (одной и той же длины в обеих архитектурах). В регистрах общего назначения флоат-числа сроду не хранились, не умеют те регистры с ними оперировать.
А нынче MatLab переписали под SSE (SSE-2,3,4...) с которым компилятор легко обходится, когда как до того, использовался FPP стековой архитектуры (x87), из-за чего компилятор каждый раз передавливал промежуточные результаты в память. Вручную его запрограммировать так, чтобы промежуточные результаты в стеке держал, было можно, но для компилятора крайне сложно, т.к. в процессе вычислений глубина погружения постоянно меняется. На SSE-регистрах все делается примитивно просто, т.к. они по обращению разные. Из-за этого на SSE можно скомпилировать вычисление какой-нибудь сложной формулы быстрее, т.к. промежуточные результаты можно оставлять во флоат-регистрах, где они и были получены. А по мере необходимости проводить с ними арифметические операции напрямую (x87 может оперировать только верхушкой стека). Из-за этого экономится много операций по загрузке и чтению в память. А такие операции накладны, т.к. размерность числа там 64 бита. ... Я сама долгое время возилась с ускорением матричных операций, а потому знаю, наколько сильно скорость вычислений зависит от многих иных обстоятельств, от типа архитектуры мало зависимых. Например, достаточно выравнить расположение масива флоат-данных на адрес, кратный 16-ти байт, чтобы скорость расчетов возрасла в полтора раза только за счет особенностий организации памяти.
Если x64 и может иметь здесь какое-либо преимущество над x32, то разве что в возможности записывать флоат-число в память и читать его оттуда за один такт (или за меньшее число тактов, чем в x32). Но это уже скорее относится к ширине шины, которая соединяет CPU и памятью (кэшем?). В этом вопросе я не сильна и ничего определенного сказать не могу.
Go to the top of the page
 
+Quote Post
MicrowaveDesigne...
сообщение Feb 14 2010, 17:46
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 21-09-07
Пользователь №: 30 737



Цитата(Xenia @ Feb 14 2010, 14:43) *
Обе архитектуры (x32 и x64) считают на флоат-поинтах одинаково, т.к. у них FPP (float point processor) одинаков.

Физически - да, регистры одни и те же. И в AMD64 архитектуре регистры с плавающей точкой - 80 битные. Но могут ли операциионные системы х86 (т.е. 32 разрядные) полностья их использовать - это вопрос.
Цитата(Xenia @ Feb 14 2010, 14:43) *
А нынче MatLab переписали под SSE (SSE-2,3,4...) с которым компилятор легко обходится...

А эти регистры в AMD64 архитектуре - 128 разрядные. Они тоже были таковыми в х86?
Go to the top of the page
 
+Quote Post
vik0
сообщение Feb 14 2010, 19:18
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 27-07-08
Из: теплые края
Пользователь №: 39 233



Цитата(MicrowaveDesigneR @ Feb 14 2010, 19:46) *
А эти регистры в AMD64 архитектуре - 128 разрядные. Они тоже были таковыми в х86?

Да, тоже. Другое дело, что в AMD64 их в два раза больше (16).
Go to the top of the page
 
+Quote Post
oleg_lap
сообщение Mar 7 2010, 20:11
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 78
Регистрация: 20-12-04
Из: Львов
Пользователь №: 1 563



Цитата(MicrowaveDesigneR @ Feb 14 2010, 13:32) *
... На 64 разрядном коде, во-первых, доступно больше оперативной памяти (а она никогда лишней не бывала). Если на 32 разрядной Винде доступно не более 3 ГБ оперативы, то 64 разрядные допускают уже до 192 ГБ....

что-то я не понял насчёт 192 ГБ, 64 разрядная шина позволяет обратиться только к 16 ГБ ОЗУ. 32 разрядной шине доступно 4 ГБ, просто ОС занимет около 1 ГБ.


--------------------
Never worry about things
That you are unable to change.
Change your own way
Of looking at truth.

Sri Chinmoy
Go to the top of the page
 
+Quote Post
forever failure
сообщение Mar 8 2010, 09:51
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Цитата(oleg_lap @ Mar 8 2010, 01:11) *
что-то я не понял насчёт 192 ГБ, 64 разрядная шина позволяет обратиться только к 16 ГБ ОЗУ.

Чо-то я тоже не понял вашей арифметики. Четырёхпудовая (4x16 = 64) разрядность регистров общего назначения позволяет таки адресовать 2^64 = 16 ГигаГигаБайт = 16 ЭкзаБайт. Правда реальная физическая шина адреса всё равно несколько уже, но всё равно адресует терабайты.
Go to the top of the page
 
+Quote Post
l1l1l1
сообщение Mar 8 2010, 17:07
Сообщение #22


Профессионал
******

Группа: Модератор FTP
Сообщений: 2 111
Регистрация: 29-12-05
Пользователь №: 12 684



Цитата(oleg_lap @ Mar 7 2010, 23:11) *
что-то я не понял насчёт 192 ГБ, 64 разрядная шина позволяет обратиться только к 16 ГБ ОЗУ.
очевидно, что вы имеете в виду не возможности 64 разрядной шины как таковой, а возможности вполне определенной материнки.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 06:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016