Dynamic programming for simd

927 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
927
On SlideShare
0
From Embeds
0
Number of Embeds
121
Actions
Shares
0
Downloads
21
Comments
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

×