Page 5 of 8 FirstFirst ... 34567 ... LastLast
Results 121 to 150 of 217

Thread: Filesystem benchmark

  1. #121
    Member
    Join Date
    Sep 2008
    Location
    France
    Posts
    643
    Thanks
    76
    Thanked 40 Times in 25 Posts
    Do you think it would be better if I enabled shuffling in blosc and disabled threading in some other way?
    No, i don't think it would.
    Shuffle only works with tables (regular and aligned data).
    With any other data, it makes matters worse.
    It really is a specialized transform for a specialized set of data.

  2. #122
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Thx

  3. #123
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    long streams of zero do happen, but not often enough to offset the cost of one additional branch.
    you may use separate branch for matches with length >255, i.e.

    len = *inp++
    if (len<255) {fast_memcpy}
    else {read_len; smart_memcpy}

  4. #124
    Member
    Join Date
    Sep 2008
    Location
    France
    Posts
    643
    Thanks
    76
    Thanked 40 Times in 25 Posts
    yes, indeed Bulat, tx for advise, and in fact i also tried it.
    But it, too, resulted in a (quite small) performance loss, to my great surprise.

    Now, this was many months ago, and perhaps there was something not properly done somewhere.
    I should have a look into it again...

  5. #125
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    OK, I've been away for quite some time, but I did some work on FsBench in this time. I want to end the 0.10 line and to do it I needed to solve 2 blockers:
    -LZHAM's compilation issues
    -LZX_compress's lack of a decompressor

    I solved them already...but more on that later. For now I'm releasing FsBench 0.10h because I want to push the code out ASAP and 0.11 needs some polish.

    The solution for both blockers was quite brutal. I made it possible to disable compilation of any codec and they are out by default.
    At the same time I removed about a half of codecs from the defaults because I decided that FsBench became too bloated.

    The second big change (and the most time-consuming part of the release) is an ability to match a compressor from one library with a decompressor form another, so you can do more fair decompressor comparisons; as long as they work with the same stream format. This is also an elegant solution to the problem of libraries that implement only an encoder or only a decoder. On that theme, I added 4 deflate libraries (1 with inflate only) bringing the number of them to 6. I intend to add another 2 very soon (Halibut and QuickLZ zip).

    The change had a dramatic impact on output formatting - codec names, versions, parameters grew significantly and even removing compressed size (leaving compression ratio) was not enough to make all the info fit in 1 line. And I intend to support chaining of codecs later which will escalate the problem further. So now each record has 2 lines. It totally broke readability. I intend to improve it by colouring the output, I hope this will work out well. Other suggestions?

    As to included codecs:
    There are several of them. Some made it to the default build, some didn't. I'm providing a customised build here allowing you to check them out, except for scz which is disabled anyway because it's single threaded and I decided that this rubbish is not worth fixing. I prefer to do a build that doesn't crash just because user ran fsbench all -t2 -b131072 file. In the future I intend to keep the practice of providing customised builds when needed.
    I failed to include 2 codecs. 7-zip's PPMD was crashing. And 7-zip caused me so much pain that I decided not to debug. Seriously, Igor knows how to make things complicated. The other codec was also a part of 7-zip. A LZX decoder, it didn't work with the output of lzx_compress. I wonder whether it was my bug or are they just different codecs. I've read about MS LZX and Amiga LZX, maybe these are different things? If yes, lzx_compress implements the MS one. 7-zip? I don't know. Does anybody know how is it?

    I'd like to mention also that I didn't try to compile FsBench on *nix in quite a while, so I expect issues. TODO.

    Changelog:
    Code:
    [+] now you can combine encoder and decoder from different libraries, i.e. miniz encoder with zlib decoder
    [+] you can now select which codecs to compile
    [+] added 7-zip's deflate and deflate64
    [+] added crypto++'s deflate
    [+] added tinf
    [+] added lodepng
    [+] added scz
    [+] added Basic Compression Library (bcl)
    [+] added bzip2
    [+] added an efficiency metric to the output: (input_size-compressed_size)/time
    [~] disabled compilation of many codecs in the default configuration, edit CMakeLists.txt to enable them
    [~] major revamp of output formatting to allow longer codec names
    [~] renamed lzx to lzx_compress to make the name unambigous
    [~] made zlib / miniz use deflate instead of zlib. They may work slightly faster because of dropped checksum calculations.
    [~] because of portability issues, LZHAM is now optional
    [~] use memcpy instead of LZ4 to determine the number of small iters; now the code takes number of threads into account too
    [~] code cleanup
    [!] fixes to enable compile-time removal of codecs
    [!] fixed a miniz compilation issue on mingw32 (it tried to use __forceinline that didn't work there)
    [!] Yappy decompression produced incorrect output without SSL
    Attached Files Attached Files

  6. #126
    Member
    Join Date
    Sep 2008
    Location
    France
    Posts
    643
    Thanks
    76
    Thanked 40 Times in 25 Posts
    Thanks Maciej, that's a huge and excellent update.
    It compiles and works fine on my test systems.

    I'll reference this new version of yours on homepage for people willing to produce their own benchmark figure.

    Regards

  7. #127
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Thank you

  8. #128
    Member
    Join Date
    Dec 2011
    Location
    Cambridge, UK
    Posts
    122
    Thanks
    5
    Thanked 18 Times in 12 Posts
    To get it to build on linux I added #include <string.h> to the top of benchmark.cpp (needed for memcpy). Other than that it built OK (ignoring warnings) and runs.

  9. #129
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Thanks, fixed.
    As to warnings, most come from codecs. Yes, there are some in my code, but I try to keep the number of them low and I do review them from time to time to check whether there's something significant.

  10. #130
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Finally, the day come.
    0.10 is out, I'm starting work on 0.11 soon.

    I fixed compilation bugs, added output colouring, added another 2 deflate libraries and did some general cleanup.
    Colouring didn't work as well as I wanted it to, it's still less readable than the versions that used single line output, but still much better than before.

    I attach source+windows binary compiled with defaults as well as a custom one that has all deflate libraries and nothing else.

    As to deflate...I didn't do rigorous testing, but though I've heard many people calling zlib inefficient, what I've seen doesn't support this notion. It has clearly the fastest decoder and encoder is a pareto frontier in most modes.

    Changelog:
    Code:
    [+] added QuickLZ zip
    [+] added Halibut's deflate
    [+] colorful output
    [~] updated zlib to 1.2.7
    [~] updated LZ4 (and LZ4hc that was merged with it) to r66
    [~] removed LZ4 modes that used LZ4_COMPRESSMIN of 4096, it didn't really work different from 1
    [~] code cleanup
    [!] compilation errors on some systems
    Attached Files Attached Files
    Last edited by m^2; 3rd June 2012 at 13:50.

  11. #131
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts

    Red face

    Sorry, in the deflate build I forgot to enable crypto++.
    Here you have the full version.

    BTW, 2 forum staff:
    When I try to edit a post and click "Go Advanced", nothing happens.
    Attached Files Attached Files

  12. #132
    Member
    Join Date
    Jun 2012
    Location
    www
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Fails to build on Ubuntu 12.04 :(

    Unfortunately building this neat benchmark fails on Ubuntu 12.04 (64bit)
    Cmake output:
    Code:
    $ cmake CMakeLists.txt 
    -- The C compiler identification is unknown
    -- The CXX compiler identification is unknown
    -- Check for working C compiler: /usr/bin/gcc
    -- Check for working C compiler: /usr/bin/gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /builds/fs-bench/src
    Building goes fine but linking ends with error:
    Code:
    [100%] Building CXX object CMakeFiles/fsbench.dir/codecs/Yappy.cpp.o
    Linking CXX executable fsbench
    CMakeFiles/fsbench.dir/benchmark.cpp.o: In function `getSmallItersCount(char const*, char*, unsigned long, unsigned int)':
    benchmark.cpp:(.text+0xa0): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0xfe): undefined reference to `clock_gettime'
    CMakeFiles/fsbench.dir/benchmark.cpp.o: In function `test(std::list<CodecWithParams, std::allocator<CodecWithParams> >&, std::basic_ifstream<char, std::char_traits<char> >&, unsigned int, unsigned int, unsigned long, unsigned long, bool, unsigned int, unsigned int, bool, unsigned long)':
    benchmark.cpp:(.text+0x233c): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0x23b2): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0x287f): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0x28eb): undefined reference to `pthread_create'
    benchmark.cpp:(.text+0x29a6): undefined reference to `pthread_join'
    benchmark.cpp:(.text+0x29d7): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0x2cc9): undefined reference to `clock_gettime'
    benchmark.cpp:(.text+0x2d35): undefined reference to `pthread_create'
    benchmark.cpp:(.text+0x2df0): undefined reference to `pthread_join'
    benchmark.cpp:(.text+0x2e21): undefined reference to `clock_gettime'
    CMakeFiles/fsbench.dir/codecs/tornado/tor_test.cpp.o: In function `GetGlobalTime':
    tor_test.cpp:(.text+0x4170): undefined reference to `clock_gettime'
    CMakeFiles/fsbench.dir/codecs/tornado/tor_test.cpp.o: In function `GetThreadCPUTime':
    tor_test.cpp:(.text+0x41d2): undefined reference to `clock_gettime'
    collect2: ld returned 1 exit status
    make[2]: *** [fsbench] Error 1
    make[1]: *** [CMakeFiles/fsbench.dir/all] Error 2
    make: *** [all] Error 2
    As for me it looks like if some libs (pthreads and something else) were not properly linked.

  13. #133
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Can you send your CMakeCache.txt?
    ADDED:
    Or, better, also the entire CMakeFiles directory.
    Last edited by m^2; 4th June 2012 at 08:37.

  14. #134
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    0.11 is out.
    As I stated in another thread, I wanted to be able to benchmark the entire compression->encryption->checksumming pipeline or any of its parts and now I made a big step to enable it.
    This and seeding an initial number of checksums are the only noteworthy changes for this release.
    In 0.12 I want to bring encryption. It's a small step, I have everything prepared, I just have to add some ciphers to the mix.

    Changelog:
    Code:
    [+] added xxhash
    [+] added Sanmayce's hashes
    [+] added SpookyHash
    [+] added MurmurHash
    [+] added CityHash
    [+] added crypto++'s hashes
    [+] added zfs' fletcher2 and fletcher4 hashes
    [+] added CrapWow hash
    [+] refactoring to enable in-place transforms (i.e. ciphers, hashes)
    [~] always use aligned buffers
    [~] removed bzip2 from the default installation (it doesn't have any real competition in FSBench ATM)
    [~] removed shrinker from the default installation (doesn't work on my linux)
    [~] added crypto++ to the default build
    [~] use crc instead of memcmp to detect incorrect (de)compression
    [~] reworked buffer management
    [~] code cleanup
    I attached 2 files, 1 with sources and win64 build and another with a custom build that has all checksums enabled.
    Attached Files Attached Files

  15. #135
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Update. Like promissed, I bring ciphers.
    Wasn't as easy as I thought, with crypto++ I get linking errors. Others 2 libraries that I tried use very complicated make process, so integrating them at source level with FSBench would be far from trivial, I gave up.
    But fortunately then I found ECrypt, which is great. A simple C API and a large number of ciphers that adhere to it. I included 13 that I found the most interesting, among them AES, RC4, Salsa, ChaCha, Snow 2.0, HC-128, HC-256.
    After that I decided that I have enough ciphers and fixing crypto++ issues can wait.
    Changelog:
    Code:
    [+] updated Shrinker to r6
    [+] updated fnv1a-Tesla to v2
    [+] updated xxhash256 to v1
    [+] added ECrypt ciphers
    Attached Files Attached Files

  16. #136
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Got a new version.
    Many things changed since 0.12.
    I moved from Windows to FreeBSD. I don't have Windows any more, so maintaining a Windows versions might be problematic. In fact I already had to make changes that I was unable to test (though very minor ones). I hope to get feedback whenever I introduce a Windows-specific bug.
    Don't expect Windows binaries from me any time soon. I might prepare a cross-compilation environment at some point, but it's a very low priority task, I'm not even sure if it will ever be done. For now, only FreeBSD AMD64 ones are included.

    For me, fsbench started as a one-evening project and I think that with inikeep it was similar....the code was a pile of hacks right from the start and it already became painful to work with. I never looked beyond the nearest thing to implement, so I never got incentives to do some cleanups. I still don't see a long way forward, but I accept that I may not be ending fsbench any time soon and decided to make it more workable. I did a lot of refactoring, documenting, fixing minor bugs. Also, I adapted Eclipse, Doxygen, Fossil.

    This new version comes with an initial implementation of chaining codecs, f.e. you can test compression+encryption+checksumming. Arbitrary chains are allowed, you can use lz first and huffman later, skip encryption altogether, etc. However, it has a major limitation. It often doesn't work with more than 1 small iteration.
    The reason is that many codecs update data in place, f.e. ciphers, checksums. Compressors do the same when you chain 2 or more of them as data goes back and forth between 2 buffers.
    And now I seek advice on how to fix it. I see several options:
    1) memcpy data between small iters.
    2) store many copies of data in RAM. Each small iter would go through them sequentially.
    3) combine 1 and 2

    The biggest problem is with checksums because they are very fast. They need to get through gigabytes to get meaningful run times. And memcpy overhead is not really acceptable for them...
    Really, the only solution that I see is:
    4) treat checksums differently, otherwise adopt 3
    I don't like it though, it's complicated. Any suggestions?
    Well working pipelining is the only thing that I feel I have to implement to call fsbench 1.0.

    Another question that I have for you is project name. fsbench is only slightly about filesystems nowadays. It's a generic in-memory benchmark of various data transforms. I don't have any candidate names...but I feel a change would be good. Any suggestions?

    Finally, changelog:
    Code:
    0.13
    [+] support for pipelining compression->encryption->checksumming (and other pipelines too)
    [+] added a couple of SHA3 candidate hashes
    [+] added gipfeli
    [+] added siphash
    [+] added blake2
    [+] added LZ4bz - an incompatible mod of LZ4 proposed by Bulat Ziganshin
    [+] added mmini (only LZ77 for now)
    [+] added zopfli
    [+] added new Sanmayce's hashes
    [~] updated LZ4 to r85, now I use LZ4_compress_limitedOutput function
    [~] removed LZ4 option to use more memory, it was too hard to maintain
    [~] updated xxhash to r5
    [~] updated lodepng to 20120729
    [~] cleanup, minor fixes and refactoring
    [~] eclipse integration
    [~] initial doxygen integration
    [~] fossil integration
    [!] updated Tornado to the latest mercurial version to fix a clang issue
    [!] numerous portability issues
    [!] memory leak in zlib and miniz handlers
    [!] insignificant memory leak in the main testing function
    [!] md5 has 128 bits, not 160
    Attached Files Attached Files

  17. The Following User Says Thank You to m^2 For This Useful Post:

    Bulat Ziganshin (3rd May 2013)

  18. #137
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    can you make a github repository? i was unable to build it under gcc/mingw/msvc due to lacking #includes

    and please share your benchmarkink results, say, in cpb/speed-on-3GHz
    Last edited by Bulat Ziganshin; 3rd May 2013 at 21:58.

  19. #138
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Quote Originally Posted by Bulat Ziganshin View Post
    can you make a github repository?
    github doesn't support fossil, so no.
    I'm not aware of any hosting provider that does.
    Quote Originally Posted by Bulat Ziganshin View Post
    i was unable to build it under gcc/mingw/msvc due to lacking #includes
    Could you provide the exact error?
    Quote Originally Posted by Bulat Ziganshin View Post
    and please share your benchmarkink results, say, in cpb/speed-on-3GHz
    I'm not sure I understand. Do you ask me to run the benchmark on my PC and share the results or implement an option to change the way performance is displayed?

  20. #139
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    1. http://chiselapp.com/
    2. for example, it cannot find runtime_error on Windows since you haven't included stdexcept. on linux, it's accidentially made available thoough thread.hpp

    on linux:

    .../abstractCodecs.cpp: In static member function ?static size_t PipelineCodec::encode(char*, size_t, char*, size_t, void*)?:
    .../abstractCodecs.cpp:453:69: error: ?memcpy? was not declared in this scope

    3. i ask you to publish your benchmark results. the second thing is that many papers/benchmarks measure cpb so it will be more comfortable for me to see the same in your benchmark

  21. #140
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Quote Originally Posted by Bulat Ziganshin View Post
    Thanks, I'll take a look.
    Quote Originally Posted by Bulat Ziganshin View Post
    2. for example, it cannot find runtime_error on Windows since you haven't included stdexcept. on linux, it's accidentially made available thoough thread.hpp

    on linux:

    .../abstractCodecs.cpp: In static member function ?static size_t PipelineCodec::encode(char*, size_t, char*, size_t, void*)?:
    .../abstractCodecs.cpp:453:69: error: ?memcpy? was not declared in this scope
    Thanks for the report, fixed both (and different occurrences of them) internally.
    You said 'for example'. Are there any others? I don't have Windows and can't check myself.

    Quote Originally Posted by Bulat Ziganshin View Post
    3. i ask you to publish your benchmark results. the second thing is that many papers/benchmarks measure cpb so it will be more comfortable for me to see the same in your benchmark
    It may sound weird, but I haven't run it seriously for quite some time. ^^
    OK, I'll get some results soon.
    As to cbp, I'll think about it. Originally, GB/s was much better simply because I could correlate speed with speed of HDDs to get interesting results directly. I understand that you like cbp though.

  22. #141
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    after i've fixed two more errors:

    Code:
    I:\fsbench-0.13\src\abstractCodecs.hpp:252:9: error: 'memcmp' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
    I:\fsbench-0.13\src\main.cpp:55:32: error: 'sort' was not declared in this scope
    the next Windows build run was successful, although with many warnings:

    Code:
    I:\fsbench-0.13\src>C:\Base\Compiler\GNUmake\bin\make.exe
    Scanning dependencies of target fsbench
    [  1%] Building CXX object CMakeFiles/fsbench.dir/main.cpp.obj
    [  1%] Building CXX object CMakeFiles/fsbench.dir/scheduler.cpp.obj
    [  2%] Building CXX object CMakeFiles/fsbench.dir/simple_codecs.cpp.obj
    I:\fsbench-0.13\src\simple_codecs.cpp:39:0: warning: "BLAKE2_FUNC" redefined [enabled by default]
    In file included from I:\fsbench-0.13\src\simple_codecs.cpp:9:0:
    I:\fsbench-0.13\src\simple_codecs.hpp:20:0: note: this is the location of the previous definition
    [  3%] Building CXX object CMakeFiles/fsbench.dir/tools.cpp.obj
    [  4%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/7z.cpp.obj
    [  4%] Building C object CMakeFiles/fsbench.dir/codecs/7z/C/Alloc.c.obj
    [  5%] Building C object CMakeFiles/fsbench.dir/codecs/7z/C/HuffEnc.c.obj
    [  6%] Building C object CMakeFiles/fsbench.dir/codecs/7z/C/LzFind.c.obj
    [  7%] Building C object CMakeFiles/fsbench.dir/codecs/7z/C/Sort.c.obj
    [  7%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Common/InBuffer.cpp.obj
    [  8%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Common/OutBuffer.cpp.obj
    [  9%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Compress/BitlDecoder.cpp.obj
    [ 10%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Compress/DeflateDecoder.cpp.obj
    [ 10%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Compress/DeflateEncoder.cpp.obj
    [ 11%] Building CXX object CMakeFiles/fsbench.dir/codecs/7z/CPP/7zip/Compress/LzOutWindow.cpp.obj
    [ 12%] Building CXX object CMakeFiles/fsbench.dir/codecs/ecrypt/fsbench_ecrypt.cpp.obj
    [ 13%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/aes-ctr-bernstein.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c: In function 'AES128Bernstein_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c:13:70: warning: unused parameter 'keysize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c:13:82: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c: In function 'AES128Bernstein_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c:259:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-bernstein.c:74:40: warning: unused parameter 'action' [-Wunused-parameter]
    [ 13%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/aes-ctr-hongjun.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c: In function 'AES256Hongjun_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:23:7: warning: unused parameter 'keysize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:24:7: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c: In function 'AES256Hongjun_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:120:7: warning: unused variable 'y3' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:120:7: warning: unused variable 'y2' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:120:7: warning: unused variable 'y1' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:122:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:134:7: warning: unused variable 'y3' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:134:7: warning: unused variable 'y2' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:134:7: warning: unused variable 'y1' [-Wunused-variable]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:135:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\aes-ctr-hongjun.c:107:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 14%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/chacha.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c: In function 'ChaCha_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c:28:62: warning: unused parameter 'ivbits' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c: In function 'ChaCha_encrypt_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c:89:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c:179:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\chacha.c:179:46: warning: 'ctarget' may be used uninitialized in this function [-Wmaybe-uninitialized]
    [ 15%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/hc-128.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\hc-128.c: In function 'HC128_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\hc-128.c:256:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 16%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/hc-256.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\hc-256.c: In function 'HC256_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\hc-256.c:267:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 16%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/lex.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c: In function 'Lex_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:724:65: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c: In function 'Lex_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:761:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:744:28: warning: unused parameter 'action' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c: In function 'Lex_keystream_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:784:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c: In function 'Lex_process_blocks':
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:795:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\lex.c:791:29: warning: unused parameter 'action' [-Wunused-parameter]
    [ 17%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/rabbit.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c: In function 'Rabbit_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:101:58: warning: unused parameter 'keysize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:101:71: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c: In function 'Rabbit_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:225:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:189:31: warning: unused parameter 'action' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c: In function 'Rabbit_keystream_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:277:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c: In function 'Rabbit_process_blocks':
    I:\fsbench-0.13\src\codecs\ecrypt\rabbit.c:295:32: warning: unused parameter 'action' [-Wunused-parameter]
    [ 18%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/rc4.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c: In function 'RC4_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c:24:7: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c: In function 'RC4_ivsetup':
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c:38:13: warning: unused parameter 'iv' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c: In function 'RC4_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\rc4.c:79:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 19%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/salsa20-8.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c: In function 'Salsa20_8_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c:22:68: warning: unused parameter 'ivbits' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c: In function 'Salsa20_8_encrypt_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c:83:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c:197:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-8.c:197:46: warning: 'ctarget' may be used uninitialized in this function [-Wmaybe-uninitialized]
    [ 19%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/salsa20-12.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c: In function 'Salsa20_12_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c:22:70: warning: unused parameter 'ivbits' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c: In function 'Salsa20_12_encrypt_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c:83:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c:197:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20-12.c:197:46: warning: 'ctarget' may be used uninitialized in this function [-Wmaybe-uninitialized]
    [ 20%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/salsa20.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c: In function 'Salsa20_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c:22:64: warning: unused parameter 'ivbits' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c: In function 'Salsa20_encrypt_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c:83:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c:197:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    I:\fsbench-0.13\src\codecs\ecrypt\salsa20.c:197:46: warning: 'ctarget' may be used uninitialized in this function [-Wmaybe-uninitialized]
    [ 21%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/snow-2.0.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\snow-2.0.c: In function 'Snow2_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\snow-2.0.c:29:7: warning: unused parameter 'ivsize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\ecrypt\snow-2.0.c: In function 'Snow2_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\snow-2.0.c:55:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 22%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/sosemanuk.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\sosemanuk.c: In function 'Sosemanuk_keysetup':
    I:\fsbench-0.13\src\codecs\ecrypt\sosemanuk.c:362:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\ecrypt\sosemanuk.c: In function 'Sosemanuk_ivsetup':
    I:\fsbench-0.13\src\codecs\ecrypt\sosemanuk.c:510:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    [ 22%] Building C object CMakeFiles/fsbench.dir/codecs/ecrypt/trivium.c.obj
    I:\fsbench-0.13\src\codecs\ecrypt\trivium.c: In function 'Trivium_process_bytes':
    I:\fsbench-0.13\src\codecs\ecrypt\trivium.c:265:7: warning: unused parameter 'action' [-Wunused-parameter]
    [ 23%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1.c.obj
    [ 24%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1a.c.obj
    [ 25%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1a_99.c.obj
    [ 25%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_1.c.obj
    [ 26%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_2.c.obj
    [ 27%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_3.c.obj
    [ 28%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_4.c.obj
    [ 28%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_5.c.obj
    [ 29%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_6.c.obj
    [ 30%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_7.c.obj
    [ 31%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_8.c.obj
    [ 31%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_9.c.obj
    [ 32%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_99.c.obj
    [ 33%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_9x.c.obj
    [ 34%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_cc.c.obj
    [ 34%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_d1.c.obj
    [ 35%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1b_rr.c.obj
    [ 36%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_1.c.obj
    [ 37%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_2.c.obj
    [ 37%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_3.c.obj
    [ 38%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_4.c.obj
    [ 39%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_5.c.obj
    [ 40%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_6.c.obj
    [ 40%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_7.c.obj
    [ 41%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_8.c.obj
    [ 42%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_9.c.obj
    [ 43%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_99.c.obj
    [ 43%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_9x.c.obj
    [ 44%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_cc.c.obj
    [ 45%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_d1.c.obj
    [ 46%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1c_rr.c.obj
    [ 46%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1f_1.c.obj
    [ 47%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1f_9x.c.obj
    [ 48%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1f_d1.c.obj
    [ 49%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_1.c.obj
    [ 49%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_1k.c.obj
    [ 50%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_1l.c.obj
    [ 51%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_1o.c.obj
    [ 52%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_9x.c.obj
    In file included from I:\fsbench-0.13\src\codecs\lzo\lzo_mchw.ch:128:0,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo1x_9x.c:99:
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_insertdict':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:272:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_remove_node':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:489:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_accept':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:527:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_search2':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:633:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_findbest':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:720:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    [ 52%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_d1.c.obj
    [ 53%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1x_o.c.obj
    [ 54%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1y_1.c.obj
    [ 55%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1y_9x.c.obj
    In file included from I:\fsbench-0.13\src\codecs\lzo\lzo_mchw.ch:128:0,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo1x_9x.c:99,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo1y_9x.c:45:
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_insertdict':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:272:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_remove_node':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:489:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_accept':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:527:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_search2':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:633:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_findbest':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:720:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    [ 55%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1y_d1.c.obj
    [ 56%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1y_o.c.obj
    [ 57%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1z_9x.c.obj
    In file included from I:\fsbench-0.13\src\codecs\lzo\lzo_mchw.ch:128:0,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo1x_9x.c:99,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo1z_9x.c:45:
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_insertdict':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:272:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_remove_node':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:489:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_accept':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:527:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_search2':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:633:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_findbest':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:720:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    [ 58%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1z_d1.c.obj
    [ 58%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo1_99.c.obj
    [ 59%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo2a_9x.c.obj
    In file included from I:\fsbench-0.13\src\codecs\lzo\lzo_mchw.ch:128:0,
                     from I:\fsbench-0.13\src\codecs\lzo\lzo2a_9x.c:59:
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_insertdict':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:272:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_remove_node':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:489:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_accept':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:527:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_search2':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:633:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch: In function 'swd_findbest':
    I:\fsbench-0.13\src\codecs\lzo\lzo_swd.ch:720:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
    [ 60%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo2a_d1.c.obj
    [ 61%] Building C object CMakeFiles/fsbench.dir/codecs/lzo/lzo_init.c.obj
    [ 61%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/adler32.c.obj
    [ 62%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/crc32.c.obj
    [ 63%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/deflate.c.obj
    [ 64%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/inffast.c.obj
    [ 64%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/inflate.c.obj
    [ 65%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/inftrees.c.obj
    [ 66%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/trees.c.obj
    [ 67%] Building C object CMakeFiles/fsbench.dir/codecs/zlib/zutil.c.obj
    [ 67%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/blocksplitter.c.obj
    [ 68%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/cache.c.obj
    [ 69%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/deflate.c.obj
    I:\fsbench-0.13\src\codecs\zopfli\deflate.c: In function 'AddLZ77Data':
    I:\fsbench-0.13\src\codecs\zopfli\deflate.c:235:25: warning: unused parameter 'expected_data_size' [-Wunused-parameter]
    [ 70%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/hash.c.obj
    [ 70%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/katajainen.c.obj
    [ 71%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/lz77.c.obj
    I:\fsbench-0.13\src\codecs\zopfli\lz77.c: In function 'VerifyLenDist':
    I:\fsbench-0.13\src\codecs\zopfli\lz77.c:80:54: warning: unused parameter 'datasize' [-Wunused-parameter]
    I:\fsbench-0.13\src\codecs\zopfli\lz77.c: In function 'FindLongestMatch':
    I:\fsbench-0.13\src\codecs\zopfli\lz77.c:230:8: warning: variable 'hhashval' set but not used [-Wunused-but-set-variable]
    [ 72%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/squeeze.c.obj
    [ 73%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/tree.c.obj
    [ 73%] Building C object CMakeFiles/fsbench.dir/codecs/zopfli/util.c.obj
    [ 74%] Building C object CMakeFiles/fsbench.dir/codecs/blake2/blake2b.c.obj
    [ 75%] Building C object CMakeFiles/fsbench.dir/codecs/blake2/blake2bp.c.obj
    [ 76%] Building C object CMakeFiles/fsbench.dir/codecs/blake2/blake2s.c.obj
    [ 76%] Building C object CMakeFiles/fsbench.dir/codecs/blake2/blake2sp.c.obj
    [ 77%] Building CXX object CMakeFiles/fsbench.dir/codecs/CityHash/city.cc.obj
    [ 78%] Building C object CMakeFiles/fsbench.dir/codecs/lz4/lz4.c.obj
    [ 79%] Building C object CMakeFiles/fsbench.dir/codecs/lz4/lz4bz.c.obj
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c: In function 'LZ4bz_uncompress':
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:755:13: warning: passing argument 1 of 'LZ4_DecodeLength' discards 'restrict' qualifier from pointer target type [enabled by default]
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:346:22: note: expected 'const uint8_t **' but argument is of type 'const uint8_t * restrict*'
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:774:13: warning: passing argument 1 of 'LZ4_DecodeLength' discards 'restrict' qualifier from pointer target type [enabled by default]
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:346:22: note: expected 'const uint8_t **' but argument is of type 'const uint8_t * restrict*'
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c: In function 'LZ4bz_uncompress_unknownOutputSize':
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:845:13: warning: passing argument 1 of 'LZ4_SafeDecodeLength' discards 'restrict' qualifier from pointer target type [enabled by default]
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:332:22: note: expected 'const uint8_t **' but argument is of type 'const uint8_t * restrict*'
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:865:13: warning: passing argument 1 of 'LZ4_SafeDecodeLength' discards 'restrict' qualifier from pointer target type [enabled by default]
    I:\fsbench-0.13\src\codecs\lz4\lz4bz.c:332:22: note: expected 'const uint8_t **' but argument is of type 'const uint8_t * restrict*'
    [ 79%] Building C object CMakeFiles/fsbench.dir/codecs/lz4/lz4hc.c.obj
    [ 80%] Building C object CMakeFiles/fsbench.dir/codecs/lzf/lzf_c.c.obj
    [ 81%] Building C object CMakeFiles/fsbench.dir/codecs/lzf/lzf_c_ultra.c.obj
    [ 82%] Building C object CMakeFiles/fsbench.dir/codecs/lzf/lzf_c_very.c.obj
    [ 82%] Building C object CMakeFiles/fsbench.dir/codecs/lzf/lzf_d.c.obj
    [ 83%] Building C object CMakeFiles/fsbench.dir/codecs/lzmat_dec.c.obj
    [ 84%] Building C object CMakeFiles/fsbench.dir/codecs/lzmat_enc.c.obj
    [ 85%] Building CXX object CMakeFiles/fsbench.dir/codecs/miniz.cpp.obj
    [ 85%] Building C object CMakeFiles/fsbench.dir/codecs/mmini/huffman.c.obj
    [ 86%] Building C object CMakeFiles/fsbench.dir/codecs/mmini/lzl.c.obj
    [ 87%] Building CXX object CMakeFiles/fsbench.dir/codecs/MurmurHash3.cpp.obj
    I:\fsbench-0.13\src\codecs\MurmurHash3.cpp:81:23: warning: always_inline function might not be inlinable [-Wattributes]
    I:\fsbench-0.13\src\codecs\MurmurHash3.cpp:68:23: warning: always_inline function might not be inlinable [-Wattributes]
    I:\fsbench-0.13\src\codecs\MurmurHash3.cpp:60:23: warning: always_inline function might not be inlinable [-Wattributes]
    I:\fsbench-0.13\src\codecs\MurmurHash3.cpp:55:23: warning: always_inline function might not be inlinable [-Wattributes]
    [ 88%] Building C object CMakeFiles/fsbench.dir/codecs/quicklz/quicklz1.c.obj
    [ 88%] Building C object CMakeFiles/fsbench.dir/codecs/quicklz/quicklz2.c.obj
    [ 89%] Building C object CMakeFiles/fsbench.dir/codecs/quicklz/quicklz3.c.obj
    [ 90%] Building CXX object CMakeFiles/fsbench.dir/codecs/RLE64.cpp.obj
    [ 91%] Building C object CMakeFiles/fsbench.dir/codecs/sanmayce.c.obj
    [ 91%] Building CXX object CMakeFiles/fsbench.dir/codecs/SHA3/fsbench_SHA3.cpp.obj
    [ 92%] Building C object CMakeFiles/fsbench.dir/codecs/siphash/siphash24.c.obj
    [ 93%] Building CXX object CMakeFiles/fsbench.dir/codecs/snappy/snappy-sinksource.cc.obj
    [ 94%] Building CXX object CMakeFiles/fsbench.dir/codecs/snappy/snappy-stubs-internal.cc.obj
    [ 94%] Building CXX object CMakeFiles/fsbench.dir/codecs/snappy/snappy.cc.obj
    [ 95%] Building CXX object CMakeFiles/fsbench.dir/codecs/spooky.cpp.obj
    [ 96%] Building C object CMakeFiles/fsbench.dir/codecs/xxhash.c.obj
    [ 97%] Building C object CMakeFiles/fsbench.dir/codecs/xxhash256.c.obj
    [ 98%] Building CXX object CMakeFiles/fsbench.dir/codecs/Yappy.cpp.obj
    Linking CXX executable fsbench.exe
    [100%] Built target fsbench
    I've also attached logfile from the MSVC 2010 build - it includes 11 errors, for example using gcc-specific `__attribute__` and `aligned` keywords
    Attached Files Attached Files
    Last edited by Bulat Ziganshin; 4th May 2013 at 00:41.

  23. #142
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    in mingw build blake2s and blake2sp failed ("Decoding error"), while blake2b was successful

    also i've attached my linux x64 build log, it required #include <string.h> in benchmark.cpp and then everything was successful until linking stage
    Attached Files Attached Files

  24. #143
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Thanks a lot Bulat.
    Can you try this?
    Code:
    0.13.1
    [~] minor cleanup and refactoring
    [~] updated Blake2 to 20130131
    [!] blake2s, blake2sp have 256-bit digests
    [!] compilation errors on some platforms
    Attached Files Attached Files

  25. #144
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    first, 0.13 version doesn't test ALL codecs when asked:

    Code:
    C:\!FreeArc\freearc\Compression\SREP\!>fsbench.exe all Z:\111
    memcpy: 106 ms, 1000000000 bytes = 8996 MB/s
    Codec                                   version      args
    C.Size      (C.Ratio)        C.Speed   D.Speed      C.Eff. D.Eff.
    7z-deflate                              9.20         5
      509044140 (x 1.964)        15 MB/s  225 MB/s      7843e3  110e6
    7z-deflate64                            9.20         5
      501501481 (x 1.994)        14 MB/s  230 MB/s      7289e3  114e6
    LZ4                                     r73
      599899643 (x 1.667)       941 MB/s 3221 MB/s       376e6 1289e6
    LZ4bz                                   r73
      598368995 (x 1.671)       968 MB/s 3178 MB/s       388e6 1276e6
    LZ4hc                                   r73
      545038169 (x 1.835)        48 MB/s 3545 MB/s        22e6 1612e6
    LZF                                     3.6
      613972512 (x 1.629)       276 MB/s 1005 MB/s       106e6  388e6
    lzmat                                   1.1
      528634525 (x 1.892)        45 MB/s  717 MB/s        21e6  337e6
    LZO                                     2.05         1x1
      995916717 (x 1.004)      2029 MB/s 7335 MB/s      8484e3   29e6
    miniz                                   1.11         6
      516697603 (x 1.935)        34 MB/s  425 MB/s        16e6  205e6
    QuickLZ                                 1.5.1b6      1
      625215679 (x 1.599)       523 MB/s  467 MB/s       196e6  175e6
    RLE64                                   R3.00        64
      887082512 (x 1.127)      6860 MB/s 7753 MB/s       774e6  875e6
    Snappy                                  1.0.5
      614986229 (x 1.626)       632 MB/s 1877 MB/s       243e6  722e6
    Yappy                                   v2           10
      623869836 (x 1.603)       101 MB/s 3430 MB/s        38e6 1290e6
    zlib                                    1.2.7        6
      517623439 (x 1.932)        37 MB/s  442 MB/s        18e6  213e6
    Codec                                   version      args
    C.Size      (C.Ratio)        C.Speed   D.Speed      C.Eff. D.Eff.
    done... (3x1 iteration(s)).
    second, mingw build was fine. MSVC2010 still has a lot of problems (logfiles attached). in particulat, its attempt to use unsupported -O3 fails and i bet it completely omits optimization since -O3 isn't supported here

    linux build still fails due to lack of -lrt -lpthread. i've tried to remove "if(UNIX)" around these lines, but no success. "-l" is absent from CMakeCache.txt

    set(EXE_LINKER_FLAGS "-lrt -lpthread")
    add_definitions(-DFREEARC_UNIX) # tornado


    finally, 0.13.1 mingw build is 2x larger and 3x slower than 0.13 so i bet it's debugging version?

    ADDED: blake2s/blakesp are ok, but again seems to compiled with -O0. blake2b is 12x slower than in 0.13
    Attached Files Attached Files
    Last edited by Bulat Ziganshin; 4th May 2013 at 12:04.

  26. #145
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Weird. My makefiles don't specify -O3... It looks like MSVC detection failed...what cmake version do you use? And the linux problems actually look the same, failed platform detection. Just checked here, on my system everything works like before.
    Can you attach CMakeFiles and CMakeCache.txt from both Windows and Linux?

    As to further MSVC issues - I'm on it.

  27. #146
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    windows: cmake 2.8.10.2.

    ubuntu 12.04 x64: cmake 2.8.7



    note that in CMakeLists.txt

    set(CMAKE_BUILD_TYPE Release)
    but in CMakeCache.txt

    CMAKE_BUILD_TYPE:STRING=
    Attached Files Attached Files

  28. #147
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    btw, VMAC implementation includes several sets of macroses improving portability:

    Code:
    /* --------------------------------------------------------------------------
     * This implementation uses uint32_t and uint64_t as names for unsigned 32-
     * and 64-bit integer types. These are defined in C99 stdint.h. The
     * following may need adaptation if you are not running a C99 or
     * Microsoft C environment.
     * ----------------------------------------------------------------------- */
    #ifndef VMAC_USE_STDINT
    #define VMAC_USE_STDINT 1  /* Set to zero if system has no stdint.h        */
    #endif
    
    
    #if VMAC_USE_STDINT && !_MSC_VER /* Try stdint.h if non-Microsoft          */
    #ifdef  __cplusplus
    #define __STDC_CONSTANT_MACROS
    #endif
    #include <stdint.h>
    #ifndef UINT64_C
    #define UINT64_C(v) v ## ULL
    #endif
    #elif (_MSC_VER)                  /* Microsoft C does not have stdint.h    */
    typedef unsigned __int32 uint32_t;
    typedef unsigned __int64 uint64_t;
    #define UINT64_C(v) v ## UI64
    #else                             /* Guess sensibly - may need adaptation  */
    typedef unsigned int uint32_t;
    typedef unsigned long long uint64_t;
    #define UINT64_C(v) v ## ULL
    #endif
    Code:
    #if __GNUC__
    #define ALIGN(n)      __attribute__ ((aligned(n)))
    #define NOINLINE      __attribute__ ((noinline))
    #elif _MSC_VER
    #define ALIGN(n)      __declspec(align(n))
    #define NOINLINE      __declspec(noinline)
    #else
    #define ALIGN(n)
    #define NOINLINE
    #endif
    and even a portable inline assembler!
    Code:
    // macros from Crypto++ for sharing inline assembly code between MSVC and GNU C#if defined(__GNUC__)
    	// define these in two steps to allow arguments to be expanded
            #define GNU_AS1(x) #x ";"
    	#define GNU_AS2(x, y) #x ", " #y ";"
    	#define GNU_AS3(x, y, z) #x ", " #y ", " #z ";"
    	#define GNU_ASL(x) "\n" #x ":"
    	#define GNU_ASJ(x, y, z) #x " " #y #z ";"
            #define AS1(x) GNU_AS1(x)
    	#define AS2(x, y) GNU_AS2(x, y)
    	#define AS3(x, y, z) GNU_AS3(x, y, z)
    	#define ASS(x, y, a, b, c, d) #x ", " #y ", " #a "*64+" #b "*16+" #c "*4+" #d ";"
    	#define ASL(x) GNU_ASL(x)
    	#define ASJ(x, y, z) GNU_ASJ(x, y, z)
    #else
    	#define AS2(x, y) __asm {x, y}
    	#define AS3(x, y, z) __asm {x, y, z}
    	#define ASS(x, y, a, b, c, d) __asm {x, y, _MM_SHUFFLE(a, b, c, d)}
    	#define ASL(x) __asm {label##x:}
    	#define ASJ(x, y, z) __asm {x label##y}
    #endif
    btw, speed of many cryptohashes (blake and vmac, at least) greatly depends on the availability and version of SSE, using assembler in various forms (intrinsincs, inine asm, external asm files)

  29. #148
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Quote Originally Posted by Bulat Ziganshin View Post
    windows: cmake 2.8.10.2.

    ubuntu 12.04 x64: cmake 2.8.7



    note that in CMakeLists.txt



    but in CMakeCache.txt
    Can't tell much from it...can you try cmake with --trace switch? Not necessarily in all configurations, we can concentrate on any of them for the moment.
    Quote Originally Posted by Bulat Ziganshin View Post
    btw, VMAC implementation includes several sets of macroses improving portability:

    Code:
    /* --------------------------------------------------------------------------
     * This implementation uses uint32_t and uint64_t as names for unsigned 32-
     * and 64-bit integer types. These are defined in C99 stdint.h. The
     * following may need adaptation if you are not running a C99 or
     * Microsoft C environment.
     * ----------------------------------------------------------------------- */
    #ifndef VMAC_USE_STDINT
    #define VMAC_USE_STDINT 1  /* Set to zero if system has no stdint.h        */
    #endif
    
    
    #if VMAC_USE_STDINT && !_MSC_VER /* Try stdint.h if non-Microsoft          */
    #ifdef  __cplusplus
    #define __STDC_CONSTANT_MACROS
    #endif
    #include <stdint.h>
    #ifndef UINT64_C
    #define UINT64_C(v) v ## ULL
    #endif
    #elif (_MSC_VER)                  /* Microsoft C does not have stdint.h    */
    typedef unsigned __int32 uint32_t;
    typedef unsigned __int64 uint64_t;
    #define UINT64_C(v) v ## UI64
    #else                             /* Guess sensibly - may need adaptation  */
    typedef unsigned int uint32_t;
    typedef unsigned long long uint64_t;
    #define UINT64_C(v) v ## ULL
    #endif
    Code:
    #if __GNUC__
    #define ALIGN(n)      __attribute__ ((aligned(n)))
    #define NOINLINE      __attribute__ ((noinline))
    #elif _MSC_VER
    #define ALIGN(n)      __declspec(align(n))
    #define NOINLINE      __declspec(noinline)
    #else
    #define ALIGN(n)
    #define NOINLINE
    #endif
    and even a portable inline assembler!
    Code:
    // macros from Crypto++ for sharing inline assembly code between MSVC and GNU C#if defined(__GNUC__)
        // define these in two steps to allow arguments to be expanded
            #define GNU_AS1(x) #x ";"
        #define GNU_AS2(x, y) #x ", " #y ";"
        #define GNU_AS3(x, y, z) #x ", " #y ", " #z ";"
        #define GNU_ASL(x) "\n" #x ":"
        #define GNU_ASJ(x, y, z) #x " " #y #z ";"
            #define AS1(x) GNU_AS1(x)
        #define AS2(x, y) GNU_AS2(x, y)
        #define AS3(x, y, z) GNU_AS3(x, y, z)
        #define ASS(x, y, a, b, c, d) #x ", " #y ", " #a "*64+" #b "*16+" #c "*4+" #d ";"
        #define ASL(x) GNU_ASL(x)
        #define ASJ(x, y, z) GNU_ASJ(x, y, z)
    #else
        #define AS2(x, y) __asm {x, y}
        #define AS3(x, y, z) __asm {x, y, z}
        #define ASS(x, y, a, b, c, d) __asm {x, y, _MM_SHUFFLE(a, b, c, d)}
        #define ASL(x) __asm {label##x:}
        #define ASJ(x, y, z) __asm {x label##y}
    #endif
    btw, speed of many cryptohashes (blake and vmac, at least) greatly depends on the availability and version of SSE, using assembler in various forms (intrinsincs, inine asm, external asm files)
    Cool. I don't want to go that far yet though. I just lack time even for the core development and don't want to spend time on portability to platforms that nobody requested.
    Though I just changed job and I'm gonna have access to 20+ embedded plaftorms. It is tempting to use the opportunity to benchmark algorithms on something else than the usual AMD64.

  30. #149
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    3,738
    Thanks
    180
    Thanked 232 Times in 129 Posts
    attached result of cmake.exe --trace -G "MinGW Makefiles"
    Attached Files Attached Files

  31. #150
    Member m^2's Avatar
    Join Date
    Sep 2008
    Location
    Ślůnsk, PL
    Posts
    1,468
    Thanks
    9
    Thanked 39 Times in 28 Posts
    Got to take it to CMake mailing list. It appears that CMake first sets build type to what I ask, but only later initialises platform specific code and overwrites my setting.
    Furthermore despite that I set CMAKE_C_FLAGS, they don't end up in the cache.
    Also, I found a minor bug, I used CMAKE_COMPILER_IS_GNUC while there should be CMAKE_COMPILER_IS_GNUCC. This didn't cause problems because CMake set CMAKE_COMPILER_IS_GNUCXX too which my scripts handled OK.

Page 5 of 8 FirstFirst ... 34567 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •