Upcoming SlideShare
×

# Dynamic programming for simd

927 views

Published on

1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
927
On SlideShare
0
From Embeds
0
Number of Embeds
121
Actions
Shares
0
21
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Dynamic programming for simd

1. 1. Dynamic Programming on SIMD
2. 2. SIMD (SSE)A register has say Example 4 parts, each x:=x+ypart has 8 bits or 16 bits x,y are memory locations of Each part appropriate alignment and executes the each refers to 4 differentsame operation variables but in parallel
3. 3. Edit Distance between Strings Q D Edit distancebetween Q[1..j] and D[1..i]
4. 4. E(i,j)
5. 5. F(i,j)
6. 6. Summarizing A G C T A -1 2 2 2 G 2 -1 2 2 C 2 2 -1 2 T 2 2 2 -1
7. 7. Parallel Computing Find the max value path fromMismatch each location to the top left corner Insertion in Q Insertion in D
8. 8. Parallel Computing Anti-diagonal can bedone inparallel
9. 9. SIMD? One SIMD register can handle all values in this chunk Partition intochunks, each chunkshould have proper alignment
10. 10. Fix: Go VerticalPartition into vertical chunks, each chunk should have proper alignment
11. 11. Problem 1: Boundaries One value comes from the previous chunkEach chunk needs a shift
12. 12. Solution 1: Striping x’s belong to onechunk, y’s to another and so on
13. 13. Problem 2: Computing F At most number of blocksSequential Dependency
14. 14. Problem 2: Computing FSequential Dependency
15. 15. Thank You