imc_extension.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef INC_IMC_IMC_EXTENSION_H_
  2. #define INC_IMC_IMC_EXTENSION_H_
  3. #ifndef imcBENCH_NAME
  4. #define imcBENCH_NAME vConv2d
  5. #endif
  6. #ifndef imcBENCH_INFINITE_LOOP
  7. #define imcBENCH_INFINITE_LOOP 0
  8. #endif
  9. #ifndef imcPRINT_RECOVERY_MESSAGE
  10. #define imcPRINT_RECOVERY_MESSAGE 0
  11. #endif
  12. #ifndef imcENABLE_STATIC_LOOP_PASS_COUNT
  13. #define imcENABLE_STATIC_LOOP_PASS_COUNT 0
  14. #endif
  15. #ifndef imcENABLE_ADAPTIVE_LOOP_PASS_COUNT
  16. #define imcENABLE_ADAPTIVE_LOOP_PASS_COUNT 1
  17. #endif
  18. #ifndef imcMAX_LOOP_IDS
  19. #define imcMAX_LOOP_IDS 1
  20. #endif
  21. #ifndef imcLOOP_PASS_COUNT
  22. #define imcLOOP_PASS_COUNT 10
  23. #endif
  24. #ifndef imcBENCH_REPEAT_COUNT
  25. #define imcBENCH_REPEAT_COUNT 1
  26. #endif
  27. #ifndef imcPRINT_STATS
  28. #define imcPRINT_STATS 0
  29. #endif
  30. #define IMC_KERNEL_NVM __attribute__((section(".kernel_nvm")))
  31. #define imcCAP_VOL_HIGH 4800
  32. #define imcCAP_VOL_LOW 3500
  33. #define imcENERGY_TOTAL (imcCAP_VOL_HIGH*imcCAP_VOL_HIGH - imcCAP_VOL_LOW*imcCAP_VOL_LOW)
  34. int __imc_get_loop_pass_count(int loop_id);
  35. void __imc_finish_loop_skipping();
  36. void imc_init_energy_estimation();
  37. void imc_recover_estimations();
  38. void imc_backup_estimations();
  39. extern int imc_is_passing_loops;
  40. extern int imc_checkpoint_triggered;
  41. extern int imc_checkpoint_executed;
  42. #endif