Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#2 closed enhancement (fixed)

Refactoring of string internals for vectorization

Reported by: vadim.godunko Owned by: somebody
Priority: major Milestone: 0.0.6
Component: Matreshka - League Version:
Keywords: Cc:


Performance of string processing can be significantly improved on modern CPU by using SIMD instructions. This ticket is opened to review current implementation and make it compatible with SIMD algorithms. Several significant assumptions must be defined to make easy the use of SIMD instructions.

  1. Data must be aligned at alignment of largest vector supported by CPU.
  2. Then string is not occupy all elements of last vector then all unused elements must be filled by zero (this may be removed actually, need to be investigated)

Change History (6)

comment:1 by vadim.godunko, 11 years ago

(In [255]) Move Fill_Null_Terminator into the SIMD child package.

Provide platform specific implementation for x86_64.

Refs #2.

comment:2 by vadim.godunko, 11 years ago

(In [256]) Refactor compare operations into SIMD package and provide their
implementation in clean Ada and using x86_64 SSE2 instructions.

Refs #2.

comment:3 by vadim.godunko, 11 years ago

(In [257]) Replace compare using SIMD instructions by ordinary code, save SIMD only
to detect difference. This improve total speed of compare operations.

Refs #2.

comment:4 by vadim.godunko, 11 years ago

(In [258]) v8hi_Array is large as reasonable now.

Refs #2.

comment:5 by vadim.godunko, 11 years ago

Resolution: fixed
Status: newclosed

comment:6 by vadim.godunko, 11 years ago

Milestone: 0.1
Note: See TracTickets for help on using tickets.