You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Comparative Analysis of both C and ASM kernels in Debug and Release Mode
Approximate Mean/Average Running Times (in seconds)
Vector Sizes
C (Debug Mode)
ASM (Debug Mode)
C (Release Mode)
ASM (Release Mode)
2^20
7.812
3.537
3.069
3.147
2^24
0.082
0.026
0.057
0.04
2^30
0.005
0.002
0.002
0.002
See Appendix for the full list of running time values of each trial run
Standard Deviation of Running Times (in seconds)
Vector Sizes
C (Debug Mode)
ASM (Debug Mode)
C (Release Mode)
ASM (Release Mode)
2^20
1.593
0.471
0.301
0.205
2^24
0.004
0.001
0.031
0.01
2^30
0.001
0.001
0.001
0.001
Analysis of the Running Times
From the results, it can be seen that the mean or average running times of the ASM kernel in debug mode is more efficient than its C counterpart. As the vector size increases, the running time of the C kernel increases more compared to the ASM kernel. However, the average running times of the C kernel significantly decreases when the program is ran in release mode. This is not true for the ASM kernel, where its running time does not change as much from debug mode to release mode. This shows that the optimization in Visual Studio works better and has more of a significant effect on C than on ASM code. Without optimization, such as in debug mode, ASM runs better, but with it, both the C and ASM kernels run at close times. Overall though, the ASM kernel is better performing with lower standard deviations in its running times compared to the C kernel.
Correctness Checks
C and ASM Kernel Outputs Ran in Debug Mode given different Vector Sizes
2^20
2^24
2^30
C and ASM Kernel Outputs Ran in Release Mode given different Vector Sizes