Presentation is loading. Please wait.

Presentation is loading. Please wait.

Co-processors for speeding up drug design algorithms Advait Jain Priyanka Jindal Pulkit Gambhir.

Similar presentations


Presentation on theme: "Co-processors for speeding up drug design algorithms Advait Jain Priyanka Jindal Pulkit Gambhir."— Presentation transcript:

1 Co-processors for speeding up drug design algorithms Advait Jain Priyanka Jindal Pulkit Gambhir

2 Objective To design FPGA based hardware accelerators for speeding up the energy minimization process.

3 Bottleneck Functions Iterate over list of bonds {O(N) elements} Iterate over list of angles {O(N) elements} Iterate over list of dihedrals {O(N) elements} Iterate over list of non-bonded pairs {O(N 2 ) elements} Eval energyEval Energy for stepDiff energy

4 Mathematical operations EvalEnergy_for_step() DiffEnergy()

5 Non-bonded List Node structure Float A, B, C (4*3 bytes) Int a1, a2 C is a function of charge q1 and q2 of atoms. 471,282 distinct Cs (3 bytes) A, B Are a function of radius and epsilon of atoms. 192 distinct pairs of A,B (1 byte)

6 New Data Structure Vector of Distinct Cs Vector of Distinct (A,B) pairs New Node structure 3d coordinates of atoms Int a1, a2 Unsigned common_index 3 1

7 Generating the proposed Data Structure Given q1, q2 Calculate C Insert (C, C_index) Into the Hash table Key: C, Data: C_Index Node.Common index = C_Index (corresponding to C) Repeat for all non- bonded pairs

8 Hash Table to distinct C vector (C_index, C)(C, C_index) Hash table Vector of Distinct Cs

9 Result of new data structure Molecule Size: 2008 VanderList: 2,008,417 AB_Vander list: 136 C_Vanderlist: 21,651 Old DatastructureNew Datastructure 2,008,417 * 20 = 40,168,340 bytes 2,008,417 * 12 + 136 * 8 + 21,651 * 4 = 24,188,696 bytes

10 Cache Profiling (old vs new) D1 misses: 3,158,603,092 ( 3,152,690,177 rd + 5,912,915 wr) D1 misses: 2,872,958,414 ( 2,868,217,925 rd + 4,740,489 wr) L2d misses: 1,270,584,560 ( 1,266,933,599 rd + 3,650,961 wr) L2d misses: 503,167,419 ( 500,920,315 rd + 2,247,104 wr) L2 misses: 1,270,606,180 ( 1,266,955,219 rd + 3,650,961 wr) L2 misses: 503,188,994 ( 500,941,890 rd + 2,247,104 wr)

11 Bottleneck Functions Iterate over list of bonds {O(N) elements} Iterate over list of angles {O(N) elements} Iterate over list of dihedrals {O(N) elements} Iterate over list of non-bonded pairs {O(N 2 ) elements} Eval energyEval Energy for stepDiff energy

12 Split Up code Eval_Energy_for _step(%) Diff_Energy(%) Non-bonded pairs 68.6129.10 Dihedrals00.5400.56 Angles00.1700.12 Bonded00.00

13 Ongoing Work  Multiple threads operating on the Non- bonded list together.  Floating point precision requirement.

14 Tentative Schedule  Software Profiling August  No. of calls  Cache misses  Effect of parameters  Control Flow Analysis August - September  Flow Diagram  Data parallelism  Floating point precision requirement  Exploring H/W Options September - October  Platform Selection  S/W H/W Partitioning  Implementation October onwards  Analysis


Download ppt "Co-processors for speeding up drug design algorithms Advait Jain Priyanka Jindal Pulkit Gambhir."

Similar presentations


Ads by Google