OSDev

для всех
Текущее время: 28 мар 2024, 22:42

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




Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 27 мар 2015, 14:24 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Yoda писал(а):
...отказ от плавающей арифметики означает ... возврат в каменный век...

Совсем забыл. Хочу добавить, что это не преувеличение. Компьютерное представление плавающей арифметики является всего лишь отражением привычной нам арифметики, которую мы используем на бумаге. Компьютеры здесь вообще ни при чём! В ВУЗах мы привыкли писать, что число Авогадро равно 6*10^23, студенты с более хорошей памятью напишут 6.022*10^23, специалист, для которого это более важно, вероятно, напишет шесть значащих разрядов. На просьбу написать скорость света мы напишем 3*10^8 м/с, педанты напишут 299792458 м/с. Если от скорости света вдруг потребовалось отнять 1 м/с, то дурак возьмёт калькулятор и посчитает 3*10^8-1. А физик скажет, что это – величина, очень близкая к скорости света, и здесь требуются совсем другие расчёты. Если нам потребовалось посчитать длину оградки вокруг дерева (чтобы купить нужное количество сетки), то нам вполне достаточно будет знать, что пи ~= 3.14. Но я просто не могу себе представить ситуацию, что студента математического факультета спросят, сколько будет синус от пи, а он откроет калькулятор и посчитает sin(3.14). Заметьте, что во всех приведённых случаях мы используем весьма сходную с компьютерной экспоненциальную запись с весьма ограниченной точностью, мы ни при каких условиях не можем полностью записать любое трансцедентное число, никто не знает все знаки числа пи, но это совершенно не мешает нам считать, доказывать теоремы, понимать, что синус от пи в точности равен нулю, запускать космические корабли, сталкивать частицы на околосветовой скорости и получать правильные результаты. Так что критики IEEE пусть начнут с переписывания школьных учебников, ибо корни стандарта лежат ещё там.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 мар 2015, 15:57 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
SII писал(а):
На мэйнфреймах экономические расчёты сильно упрощались наличием двоично-десятичной арифметики с числами переменной длины (до 16 байтов, т.е. до 31 десятичной цифры + знак). Поэтому в принципе не возникало проблем с точным представлением очень больших чисел вроде госдолга США :)

Да-да. Похоже, что в Oracle что-то из того же или схожего наследия. Максимальная разрядность целой части number -- number(38), то есть 10^38, поскольку разрядность и точность встроенного типа number -- десятичные. Сотовые операторы и банки, использующие Oracle, вроде не жалуются.

А по поводу производительности могу сказать, что то ли Oracle настолько медленная СУБД сама по себе, что несовершенство десятичной арифметики не видно на фоне прочих накладных расходов, то ли реализация типа number хорошо оптимизирована и не тормозит. А может оба фактора имеют место, не знаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 мар 2015, 20:35 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
scuter писал(а):
вы чего профессора с докторскими диссертациями по математики, что ли
у вас мозгов хоть хватит, что бы такое сделать (Беседа о создании математической библиотеки для ЯП).
там единственное что может быть это пару недальновидных формулок и ничего больше.

Не переживай мозгов хватит. А вот сил и рук только если объединимся. Можешь считать что тут 2 профессора есть. Я давно создаю свою математическую библиотеку. Хотя это побочное направление, но где-то 30% от крупных библиотек есть.
По поводу украсть. Это трудно дело в том что проблему эффективности библиотекой не решить. А надо делать как в ПЛИСоводы. Они используют генераторы кода для своих нужд. Если генератор не справляется пишут свою реализацию.

Но лично я разочировался во всех форматах чисел. Поэтому даже незнаю куда лучше двигаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 мар 2015, 21:53 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
pavia писал(а):
Но лично я разочировался во всех форматах чисел. Поэтому даже незнаю куда лучше двигаться.

Мне больше нравится подход "функции по содержанию" из функционального программирования. Вместо того, чтобы на каждом шаге программы вычислять абсолютное значение скажем числа Пи, корня из 2, или дроби 1/3, программа аккумулирует эти числа как есть (в оригинальной записи), а формула вычисляется только на конечном этапе. В алгебре такой же принцип подстановок. А технически, процессору было бы полезно уметь оперировать реальными дробными числами (не путать с плавающей/фиксированной точкой), и программистам привыкнуть вычислять всё в дробях - погрешности исчезнут сами собой. Правда потребности в сверх точности на практике и нет особо. В электронике всегда достаточно 4-5 значащих цифр с плавающей точкой (как на цифровых тестерах), в финансах 4 знака после запятой, в вероятности тоже рассчитывают до 0,001 и всё.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 мар 2015, 20:00 
Аватара пользователя

Зарегистрирован: 17 фев 2013, 16:13
Сообщения: 163
Раз дело обстоит так, то Yoda, конечно, прав: хорошо, что Intel "победила". Однако следует заметить, что я, например, не ругаю бинарный поиск за то, что его могут правильно написать только 10% программистов, и не ругаю более сложные алгоритмы, написать которые правильно сможет лишь несколько человек, но в случае ошибок при работе с плавающей арифметикой ругать хочется именно её, а не программиста.

Что касается приведённой аналогии с числами из учебника, то она не совсем подходит. Попытка переложить на компьютер, например, числа типа "корень из двух" или "синус пи на девятнадцать" приводит к трудностями, так как их можно представить только символами, то есть применить скорее функциональный подход к архитектуре, по сущности своей императивной. Когда математик работает с плавающей арифметикой, то, как правило, он работает с числами одного порядка и может произвольно управлять точностью.


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Гонка разрядности всё ещё идёт
http://www.agner.org/optimize/blog/read.php?i=288
http://wccftech.com/mainstream-intel-co ... lake-xeon/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 апр 2015, 03:18 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Himik писал(а):
Гонка разрядности всё ещё идёт

Бегло глянул, но у меня впечатление, что здесь речь не об увеличении разрядности представления чисел (а соответственно, их точности), а лишь об увеличении количества элементов вектора, обрабатываемого одной векторной командой -- а это совсем другое.

Вообще, у меня впечатление, что Интел продолжает идти идиотским путём, добавляя всё новые и новые узкоспециализированные команды, которые почти никому и ничему не нужны. Если говорить про векторную составляющую современных процессоров (SIMD), то лично мне кажется, что нужны лишь два набора команд:

1) для операций с 4-компонентными векторами. Такие векторы очень широко используются, например, в трёхмерной графике, поэтому такие команды реально прямо или косвенно востребованы значительным количеством приложений;

2) для операций с векторами переменной длины. Такие команды нужны специализированному "математическому" ПО (помимо собственно математических расчётов, сюда, наверное, попадает часть инженерных задач, связанных с моделированием реальной физики и т.д. и т.п. -- но я абсолютно не специалист, поэтому ничего наверняка сказать не могу).

Интел же, вместо того, чтобы реализовать п. 2, плодит всё новые и новые команды для всё большей размерности векторов, но при этом забота об их использовании всё равно ложится на программиста (компилятор), причём с каждой новой версией SIMD (AVX -- это тот же SIMD, по большому счёту, только переименованный в рекламных целях) приходится переделывать компиляторы. А вот если бы были операции с векторами переменной длины, один и тот же двоичный код мог бы выполняться на самых разных процессорах с разной производительностью (скажем, в медленном Атоме векторы вообще обрабатывались бы покомпонентно -- т.е. на сложение двух 4-элементных векторов требовалось бы четыре такта, в то время как в каком-нибудь топовом проце-числодробилке одновременно можно было бы выполнять, скажем, 32 таких операции).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 апр 2015, 11:38 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Абсолютно согласен, с той только разницей, что и в первом пункте нет особой необходимости. Четырёхкомпонентный вектор - частный случай вектора переменной длины.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 апр 2015, 14:48 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Математически -- да. Технически -- думаю, разница всё же есть: поскольку именно этот случай встречается очень часто, в процессорах общего назначения есть смысл оптимизировать железо именно под него (в то время как "настоящие" векторные процессоры для научных расчётов должны оптимизироваться под переменную длину, причём под достаточно большую).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 апр 2015, 16:49 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Вы правы, это оказалось не расширение типа, а всего лишь расширение массива.
•The 512-bit registers can do vector operations on 32-bit and 64-bit signed and unsigned integers and single and double precision floats...


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

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


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

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


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

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