Skip to content
Snippets Groups Projects
  • Siarhei Siamashka's avatar
    eb1fccd5
    New variants of block based C backwards copy · eb1fccd5
    Siarhei Siamashka authored
    Because some processors are sensitive to the order of memory
    accesses, add a few more variants of memory buffer backwards
    copy which do sequential memory writes in the forward direction
    inside of each sub-block of certain size. The most interesting
    sizes of such sub-blocks are 32 and 64 bytes, because they match
    the most frequently used CPU cache line sizes.
    
    Example reports:
    
    == ARM Cortex A7 ==
     C copy backwards                                     :    266.5 MB/s
     C copy backwards (32 byte blocks)                    :   1015.6 MB/s
     C copy backwards (64 byte blocks)                    :   1045.7 MB/s
     C copy                                               :   1033.3 MB/s
    
    == ARM Cortex A15 ==
     C copy backwards                                     :   1438.5 MB/s
     C copy backwards (32 byte blocks)                    :   1497.5 MB/s
     C copy backwards (64 byte blocks)                    :   2643.2 MB/s
     C copy                                               :   2985.8 MB/s
    eb1fccd5
    History
    New variants of block based C backwards copy
    Siarhei Siamashka authored
    Because some processors are sensitive to the order of memory
    accesses, add a few more variants of memory buffer backwards
    copy which do sequential memory writes in the forward direction
    inside of each sub-block of certain size. The most interesting
    sizes of such sub-blocks are 32 and 64 bytes, because they match
    the most frequently used CPU cache line sizes.
    
    Example reports:
    
    == ARM Cortex A7 ==
     C copy backwards                                     :    266.5 MB/s
     C copy backwards (32 byte blocks)                    :   1015.6 MB/s
     C copy backwards (64 byte blocks)                    :   1045.7 MB/s
     C copy                                               :   1033.3 MB/s
    
    == ARM Cortex A15 ==
     C copy backwards                                     :   1438.5 MB/s
     C copy backwards (32 byte blocks)                    :   1497.5 MB/s
     C copy backwards (64 byte blocks)                    :   2643.2 MB/s
     C copy                                               :   2985.8 MB/s