Download presentation
Presentation is loading. Please wait.
Published byMaximilian Knight Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.