Double vs float на iPhone
Я только что слышал, что iphone не может делать двойным путем, тем самым делая их намного медленнее, чем обычный плавающий.
Это правда? Доказательства?
Меня очень интересует проблема, потому что моя программа требует высокоточных вычислений, и мне придется идти на компромисс по скорости.
- Равновесие и допуски с плавающей точкой
- проблемы в сравнении с плавающей запятой
- Как вы печатаете EXACT значение числа с плавающей запятой?
- Сделать поплавок показывать только два десятичных знака
- Странное поведение при приведении float в int в C #
- Ассемблер x86: сравнение с плавающей запятой
- Выдача результата для float в методе, возвращающем результат изменения float
- Как сравнить два числа с плавающей запятой в Bash?
- Как определить число с плавающей запятой, используя регулярное выражение
- Почему значение с плавающей запятой, такое как 3.14, по умолчанию считается в MSVC?
- Сравнение значений с плавающей запятой
- Клавиши с плавающей запятой в std: map
- Какова максимальная длина в символах, необходимых для представления любого двойного значения?
IPhone может выполнять как одно-, так и двойную точность арифметики в оборудовании. На 1176 (оригинальный iPhone и iPhone3G) они работают примерно с одинаковой скоростью, хотя вы можете вставлять больше данных с одной точностью в кэш. На Cortex-A8 (iPhone3GS, iPhone4 и iPad) арифметика с одной точностью выполняется на блоке NEON вместо VFP и значительно быстрее.
Обязательно отключите режим большого пальца в настройках компиляции для armv6, если вы выполняете интенсивные вычисления с плавающей запятой.
Это слайд-шоу дает представление о том, почему нет хорошей точки с плавающей точкой и почему существует (векторная единица с плавающей запятой). По-видимому, важно проверить «режим большого пальца», который влияет на поддержку поддержки с плавающей запятой. Это не всегда является улучшением. Он показывает, как найти правильные инструкции в коде сборки.
Это также зависит от того, какую версию телефона вы хотите запустить. Самый последний из них кажется «более способным» при выполнении математики с плавающей запятой.
EDIT: вот интересное чтение оптимизаций с плавающей запятой на ARM с VFP и NEON SSE.
В руководстве ARM1176JZF-S говорится, что он поддерживает числа с плавающей запятой с двойной точностью. Вы должны быть в хорошей форме. Вот ссылка на документацию в формате PDF. Позже iPhones являются чипами Cortex и, безусловно, не должны быть менее способными.