Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аналог math из crt c исходниками 
:(
    Опции темы
opiate
Дата 10.9.2012, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Добрый день!
Подскажите пожалуйста open-source библиотеку, вычисляющую sin, cos, tan, log, pow, sqrt и т.д, использующую использующую SIMD (SSE2/SSE3), которую несложно портировать в MSVC (без cygwin и mingw)
PM MAIL   Вверх
boostcoder
Дата 10.9.2012, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



дзочэм?
PM WWW   Вверх
opiate
Дата 10.9.2012, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @  10.9.2012,  20:20 Найти цитируемый пост)
дзочэм? 

на всякий случай.

Может кто видел порт Libm-315 (opensource.apple.com) под msvc?
PM MAIL   Вверх
bsa
Дата 10.9.2012, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



opiate, ты хоть знаешь, что такое инструкции SIMD и зачем они вообще нужны? Просто судя по вопросу, ты этого не знаешь.
Если тебе не нужно вычислять сотни однотипных операций, то используй стандартные функции (sin, cos, sqrt...). Если же тебе нужны именно такие, то ищи по слову вектор.
PM   Вверх
opiate
Дата 11.9.2012, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(bsa @  10.9.2012,  22:24 Найти цитируемый пост)
opiate, ты хоть знаешь, что такое инструкции SIMD и зачем они вообще нужны? Просто судя по вопросу, ты этого не знаешь.

Прежде чем грубить, почитай-ка сам что такое SIMD инструкции и какие они бывают, потом пройдись дизассемблером по "стандартным" sin cos из crt, и узнаешь зачем они бывают нужны.
PM MAIL   Вверх
bsa
Дата 11.9.2012, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



opiate, может ты сначала сформулируешь вопрос корректно? А то непонятно что тебе нужно. То ли 128-битная арифметика, то ли векторная, то ли просто оптимизированные операции.
А потом, неужели у студии нет галочек, которые бы включали поддержку данного набора инструкций?
PM   Вверх
bsa
Дата 11.9.2012, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



PM   Вверх
opiate
Дата 11.9.2012, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(bsa @  11.9.2012,  10:59 Найти цитируемый пост)
opiate, может ты сначала сформулируешь вопрос корректно? А то непонятно что тебе нужно. То ли 128-битная арифметика, то ли векторная, то ли просто оптимизированные операции.
А потом, неужели у студии нет галочек, которые бы включали поддержку данного набора инструкций? 

Даже незнаю как еще точнее: ищу оптимизированную с помощью SIMD библиотеку математических функций, которые объявлены в math.h из студии, но c исходниками.

В VS2005 для вычисления, например, sin действительно включается SSE2, в VS2008 включается SSE3, это почти то что нужно, но нет исходников (или я их просто невижу?), хотя crt исходники есть.

Цитата(bsa)
http://sseplus.sourceforge.net/

Спасибо, интересная вещь, но уж больно простейшие там функции. Синуса, косинуса, логарифма нет, только sqrt ceil и floor.

Смотрел там же на sourceforge Vector3D SSE, EasySSE, NVec - какие-то самоделки недоделки.
Libm от apple - похоже не использует SIMD, и непонятно каким ассемблером компилить.

Здесь говорят "Under Linux, the mathematical functions (as declared in math.h) are bundled separately in the mathematical library libm" - вроде как есть еще одна реализация libm под Unix. Использует ли она SIMD? можно ли собрать в msvc?
PM MAIL   Вверх
tzirechnoy
Дата 11.9.2012, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 2
Всего: 16



Цитата
Спасибо, интересная вещь, но уж больно простейшие там функции.


А давно у Вас в math.h описаны _mm_abs_epi16 и им подобные?

Цитата
В VS2005 для вычисления, например, sin действительно включается SSE2


С чего Вы взяли?


PM MAIL   Вверх
opiate
Дата 12.9.2012, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(tzirechnoy @  11.9.2012,  23:26 Найти цитируемый пост)
А давно у Вас в math.h описаны _mm_abs_epi16 и им подобные?

Они не должны быть там описаны, их использует crt и math в своем коде.
Цитата(tzirechnoy @  11.9.2012,  23:26 Найти цитируемый пост)
С чего Вы взяли?

C/C++ -> Code Generation -> Enable Enhanced Instruction Set: Streaming SIMD Extensions2 (/arch:SSE2)
Запускать и смотреть дизассемблером (F11 в функцию sin())

PM MAIL   Вверх
boostcoder
Дата 12.9.2012, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



так если там уже есть поддержка sse2, то для чего еще одна либа?
PM WWW   Вверх
opiate
Дата 12.9.2012, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(boostcoder @  12.9.2012,  08:29 Найти цитируемый пост)
так если там уже есть поддержка sse2, то для чего еще одна либа? 

исходники нужны
PM MAIL   Вверх
bsa
Дата 12.9.2012, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



А тебя лицензия не волнует?
PM   Вверх
opiate
Дата 12.9.2012, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 29.1.2011

Репутация: нет
Всего: нет



Цитата(bsa @  12.9.2012,  11:23 Найти цитируемый пост)
А тебя лицензия не волнует? 

совсем не волнует.

Разбираюсь щас с Framewave. Вот накой #@$%& нужно было делать сборку из Visual Studio через какой-то долбанный SCons, для которого еще нужно устанавливать долбанный Python еще и старой версии.
Наконец-то собралось... 

Пока что получилось в 2 раза медленнее чем студийная math даже при расчете сразу 3-х синусов через fwsSin_32f_A24() хотя вроде Framewave использует для этого нузкоуровневую SSEPlus.

Прошелся в отладке по fwsSin_32f_A24() зачем-то используется что-то из boost, создаются потоки, синхронизация... неудивительно что так медленно.

Это сообщение отредактировал(а) opiate - 12.9.2012, 15:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0994 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.