Git Product home page Git Product logo

vstring's Introduction

vstring - Vectroized String Helper Functions

A header only string helper library.

Dependencies

Build Instructions

git clone https://github.com/sahmad98/vstring
cd vstring
mkdir build
cd build
cmake ..
make -j 4

Binaries

  • vstring_bench - Benchmark Binary
  • vstring_test - Test Binary

Benchmarks

Machine Specs

Architecture:        x86_64
Vendor ID:           GenuineIntel
Model name:          Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
CPU MHz:             2893.361
CPU max MHz:         3100.0000
CPU min MHz:         1200.0000
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            3072K
NUMA node0 CPU(s):   0-3
Memory Size:         8 GB

Benchmark Results

stoi ran on all digits from 0 to 10. Following are stoi benchmark implementations

  • Atoi - C library atoi
  • Stoi - C++ std::stoi
  • VStoi - vstring::atoi (implemented with OpenMP simd support)
  • VStoiIntrinsic - vstring::stoi (some part implementated with instrinsics and rest with OpenMP simd)

Stoi Benchmarks

Running ./vstring_bench
Run on (4 X 3100 MHz CPU s)
CPU Caches:
  L1 Data 32K (x2)
  L1 Instruction 32K (x2)
  L2 Unified 256K (x2)
  L3 Unified 3072K (x1)
Load Average: 0.92, 1.09, 1.05
-------------------------------------------------------------
Benchmark                   Time             CPU   Iterations
-------------------------------------------------------------
Atoi<0>                  19.6 ns         19.6 ns     41268339
Atoi<1>                  22.8 ns         22.8 ns     32894575
Atoi<2>                  24.5 ns         24.5 ns     29373132
Atoi<3>                  26.8 ns         26.7 ns     24318895
Atoi<4>                  29.6 ns         29.6 ns     23678912
Atoi<5>                  35.8 ns         35.8 ns     19980500
Atoi<6>                  36.4 ns         36.4 ns     18261115
Atoi<7>                  40.2 ns         40.2 ns     18080404
Atoi<8>                  42.9 ns         42.8 ns     13336815
Atoi<9>                  45.3 ns         45.3 ns     14880288
Stoi<0>                  19.0 ns         19.0 ns     33468114
Stoi<1>                  21.3 ns         21.3 ns     31283041
Stoi<2>                  24.8 ns         24.7 ns     28999860
Stoi<3>                  27.5 ns         27.5 ns     25007227
Stoi<4>                  29.5 ns         29.5 ns     23115277
Stoi<5>                  33.1 ns         33.1 ns     21241968
Stoi<6>                  35.0 ns         35.0 ns     19328284
Stoi<7>                  39.3 ns         39.3 ns     18516857
Stoi<8>                  43.5 ns         43.5 ns     16204777
Stoi<9>                  43.8 ns         43.8 ns     15975854
VStoi<0>                 10.8 ns         10.8 ns     62055430
VStoi<1>                 13.1 ns         13.1 ns     57126175
VStoi<2>                 14.5 ns         14.5 ns     48849490
VStoi<3>                 19.5 ns         19.5 ns     35795502
VStoi<4>                 21.4 ns         21.4 ns     32649288
VStoi<5>                 21.9 ns         21.9 ns     32154079
VStoi<6>                 22.3 ns         22.3 ns     31604697
VStoi<7>                 21.7 ns         21.7 ns     32205287
VStoi<8>                 23.8 ns         23.8 ns     29113004
VStoi<9>                 24.4 ns         24.4 ns     28820527
VStoiIntrinsics<0>       12.2 ns         12.2 ns     56700711
VStoiIntrinsics<1>       14.1 ns         14.1 ns     49328995
VStoiIntrinsics<2>       16.0 ns         16.0 ns     44196694
VStoiIntrinsics<3>       12.5 ns         12.5 ns     55843771
VStoiIntrinsics<4>       15.4 ns         15.4 ns     44830579
VStoiIntrinsics<5>       16.4 ns         16.4 ns     43328013
VStoiIntrinsics<6>       17.8 ns         17.8 ns     37701897
VStoiIntrinsics<7>       12.5 ns         12.4 ns     55005961
VStoiIntrinsics<8>       17.6 ns         17.5 ns     43247715
VStoiIntrinsics<9>       17.4 ns         17.4 ns     40614609

vstring's People

Contributors

sahmad98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.