Thesis. Main idea

Get Started. It's Free
or sign up with your email address
Thesis. Main idea by Mind Map: Thesis. Main idea

1. Drawbacks

1.1. not enough registers

1.1.1. not proven by tests

1.1.2. may be OK for some applications

1.1.2.1. define, which applications need a lot of registers

1.1.3. additional sources may be used

1.1.3.1. MMX

1.1.3.1.1. replaced by SSE?

1.1.3.2. AVX-512

1.1.3.2.1. just AVX don't introduce new registers

1.1.3.2.2. still not much - only 32

1.1.3.2.3. consumes much more energy

1.1.3.3. normal registers

1.1.3.3.1. slowdown

1.1.3.3.2. may be ok in special cases

1.1.3.4. 2 duplicated variables in one SSE register

1.1.3.4.1. presumably, too complicated implementation

1.1.3.4.2. usage is much more effective

1.2. energy consumption

1.2.1. just guess, may be wrong

1.3. type checking

1.3.1. in SSE we have only 3 data types (even 2, actually)

1.3.2. C doesn't support strict typedefs

1.3.2.1. haven't found how to implement it, yet

1.3.2.2. may lead to huge security flaws

1.3.2.2.1. which ones? why do they have so many data types in C?

1.3.2.2.2. how do they infulence security and dependability

1.3.3. shouldn't be an issue while types are checked by type analyzer

1.4. increased cache miss rate or lead to higher rate of interactions with memory

1.4.1. proof

1.5. SSE

1.5.1. some common operations may not be availabe in SSE

1.5.1.1. MULL

1.5.1.2. comparison

1.5.1.3. modulo

1.5.2. expensive transformation into/from SIMD data types

1.5.2.1. huge influence in lib. calls performance

1.5.2.2. < 5% of program

1.6. common mode failure

1.6.1. both duplicates in one regiser

1.6.2. have to remove it from failure model

2. First implementation

2.1. duplicatied data

2.1.1. not yet desided, how deep is duplication

2.1.2. may be problems with

2.1.2.1. pointers

2.1.2.2. arrays

2.1.2.3. strings

2.1.2.4. deep structures

2.2. SSE4.2

2.2.1. regs XMM0-XMM15

2.2.2. ints -> m128i

2.2.3. floats -> m128d

2.3. based on encoding framework

2.3.1. lower performance (compared to LLVM)

2.3.2. can be implemented in 1-2 month

2.4. worse dependability

2.4.1. lower assumption coverage

2.4.2. higher false negative probability

3. Trades time redundancy for space redundancy (bigger registers)

3.1. duplicates are executed in parallel

3.2. normal registers are still free

4. SIMD registers are usually not in use

4.1. they are applicable only for certain types of applications

4.1.1. video/3D processing

4.1.2. scientific applications

4.2. require a lot of changes in excisting code

4.2.1. intrinsics help, but still require rewriting a code

4.2.2. compilers (in most of situations) are not able to optimize non-SIMD code for using SIMD

4.2.2.1. even if optimization is used, difference is insignificant

4.2.2.2. prove by experiments/papers

5. Hypothesis

5.1. SIMD will radicaly improve performance