Report 8 – Melih Mert
In this week, there was an important point in our simulation code. We noticed that our advanced simulation algorithm gave some incorrect results for long output lists while we were testing it with large net-lists. Then, we found that our simulation logic was incomplete and this led us to modify the whole simulation code from the beginning.
First of all, we tried to understand the logic of Aiger simulation code. This was really important for us to know which techniques were used in this simulation. After understanding its details, we wrote our sequential simulation code which worked very fast when compared with the previous versions. Then, we parallelized this code. However, we had another inconsistency in output values. The reason of this is that we could not synchronize threads in different blocks in CUDA architecture. So we should find another method for parallel version.
Finally, we implemented different kernels for distinct tasks. This helped us to provide a safe and correct synchronization mechanism. Then, we tested our simulation code with some net-lists. Then, we decided that we had to work on it in more detail.
During next week, we are going to work on improving our last parallel simulation algorithm.
Melih Mert