Начал недавно проект по разработке SIMD бибилиотек для С++ на Fasm под 64-bit Linux.
Интересно услышать мнение матерых программеров как о самом проекте, так и качестве кода.
Вот вебсайт, где можно качнуть исходники и посмотреть документацию, которая уже есть.
http://linasm.sourceforge.net/docs/index.php
> Начал недавно проект по разработке SIMD бибилиотек для С++ на Fasm под
> 64-bit Linux.
> Интересно услышать мнение матерых программеров как о самом проекте, так и качестве
> кода.
> Вот вебсайт, где можно качнуть исходники и посмотреть документацию, которая уже есть.
> http://linasm.sourceforge.net/docs/index.phpНет бенчмарков, что настораживает. Или есть?
>> Начал недавно проект по разработке SIMD бибилиотек для С++ на Fasm под
>> 64-bit Linux.
>> Интересно услышать мнение матерых программеров как о самом проекте, так и качестве
>> кода.
>> Вот вебсайт, где можно качнуть исходники и посмотреть документацию, которая уже есть.
>> http://linasm.sourceforge.net/docs/index.php
> Нет бенчмарков, что настораживает. Или есть?Есть. Их код вот тут: http://sourceforge.net/projects/linasm/files/SpeedTests.tar....
А результаты тестов вот они.processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz
stepping : 7
cpu MHz : 3160.503
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good pni ssse3 lahf_lm
bogomips : 6321.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
################################################################################
# Numbers conversion library speed test #
################################################################################
This test converts 1000000 numbers in 100 rounds.Integer numbers conversion:
===========================Octal numbers conversion:
'sscanf' time: 19.755847 sec
'strtoul' time: 5.476777 sec
'LinAsm' time: 2.952698 secHexadecimal numbers conversion:
'sscanf' time: 19.364499 sec
'strtoul' time: 6.264688 sec
'LinAsm' time: 4.190943 secDecimal numbers conversion:
'sscanf' time: 18.347976 sec
'strtoul' time: 5.220468 sec
'LinAsm' time: 2.785372 secFloating-point numbers conversion:
==================================Hexadecimal numbers conversion:
'sscanf' time: 26.137860 sec
'strtod' time: 10.961610 sec
'LinAsm' time: 5.795652 secDecimal numbers conversion:
'sscanf' time: 27.214856 sec
'strtod' time: 15.222347 sec
'LinAsm' time: 2.954274 sec
################################################################################
# Time conversion library speed test #
################################################################################
This test converts 1000000 time stamps in 100 rounds.Unix time to Gregorian date conversion:
'gmtime' time: 4.228890 sec
'LinAsm' time: 2.284649 secGregorian date to unix time conversion:
'mktime' time: 122.046674 sec # Это не шибка. Такой вот код в libc
'LinAsm' time: 1.005384 sec################################################################################
# Array library speed test #
################################################################################
This test operates on 10000000 elements wide flt64_t arrays in 100 rounds.Addition:
Classic scalar code time: 1.407980 sec
LinAsm vector code time: 1.379985 secSubtraction:
Classic scalar code time: 1.426498 sec
LinAsm vector code time: 1.379655 secMultiplication:
Classic scalar code time: 1.397805 sec
LinAsm vector code time: 1.386163 secDivision:
Classic scalar code time: 6.425936 sec
LinAsm vector code time: 3.445004 secAbsolute value:
Classic scalar code time: 1.008767 sec
LinAsm vector code time: 0.921362 secSquare root value:
Classic scalar code time: 11.988184 sec
LinAsm vector code time: 2.745969 secMin value:
Classic scalar code time: 1.329877 sec
LinAsm vector code time: 0.665184 secMax value:
Classic scalar code time: 1.320772 sec
LinAsm vector code time: 0.665314 secConvolution value:
Classic scalar code time: 1.269394 sec
LinAsm vector code time: 1.083574 secSorting:
Classic Quick Sort code time: 1.848767 sec
LinAsm Quick Sort code time: 0.770507 sec
LinAsm Radix Sort code time: 0.332851 sec
>> Начал недавно проект по разработке SIMD бибилиотек для С++ на Fasm под
>> 64-bit Linux.
>> Интересно услышать мнение матерых программеров как о самом проекте, так и качестве
>> кода.
>> Вот вебсайт, где можно качнуть исходники и посмотреть документацию, которая уже есть.
>> http://linasm.sourceforge.net/docs/index.php
> Нет бенчмарков, что настораживает. Или есть?Сделал специальную страницу, сравнивающую производительность библиотек для тех функций, которые имеют аналоги в GNU libc. Многие их не имеют, так что тесты сравнивают лишь небольшой набор одинаковых по функционалу алгоритмов. Графики прилагаются.
Ссылка на тесты вот: http://linasm.sourceforge.net/about/performance.php