hwcomponents-cacti 1.0.21__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. hwcomponents_cacti-1.0.21/.github/workflows/publish.yaml +43 -0
  2. hwcomponents_cacti-1.0.21/.gitignore +64 -0
  3. hwcomponents_cacti-1.0.21/.gitmodules +3 -0
  4. hwcomponents_cacti-1.0.21/Makefile +10 -0
  5. hwcomponents_cacti-1.0.21/PKG-INFO +92 -0
  6. hwcomponents_cacti-1.0.21/README.md +78 -0
  7. hwcomponents_cacti-1.0.21/hwcomponents_cacti/__init__.py +1 -0
  8. hwcomponents_cacti-1.0.21/hwcomponents_cacti/_version.py +34 -0
  9. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/2DDRAM_Samsung2GbDDR2.cfg +194 -0
  10. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/2DDRAM_micron1Gb.cfg +194 -0
  11. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/3DDRAM_Samsung3D8Gb_extened.cfg +197 -0
  12. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/README +122 -0
  13. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/TSV.cc +242 -0
  14. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/TSV.h +96 -0
  15. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/Ucache.cc +1073 -0
  16. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/Ucache.h +118 -0
  17. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/arbiter.cc +130 -0
  18. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/arbiter.h +77 -0
  19. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/area.cc +46 -0
  20. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/area.h +71 -0
  21. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/bank.cc +206 -0
  22. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/bank.h +74 -0
  23. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/basic_circuit.cc +999 -0
  24. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/basic_circuit.h +305 -0
  25. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/cache.cfg +305 -0
  26. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/cacti.i +8 -0
  27. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/cacti.mk +53 -0
  28. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/cacti_interface.cc +174 -0
  29. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/cacti_interface.h +904 -0
  30. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/component.cc +237 -0
  31. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/component.h +84 -0
  32. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/const.h +273 -0
  33. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/contention.dat +126 -0
  34. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/crossbar.cc +161 -0
  35. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/crossbar.h +83 -0
  36. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/ddr3.cfg +254 -0
  37. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/decoder.cc +1673 -0
  38. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/decoder.h +272 -0
  39. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/dram.cfg +114 -0
  40. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/extio.cc +506 -0
  41. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/extio.h +46 -0
  42. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/extio_technology.cc +1617 -0
  43. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/extio_technology.h +225 -0
  44. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/htree2.cc +640 -0
  45. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/htree2.h +97 -0
  46. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/io.cc +3790 -0
  47. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/io.h +45 -0
  48. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/lpddr.cfg +254 -0
  49. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/main.cc +270 -0
  50. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/makefile +28 -0
  51. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/mat.cc +1940 -0
  52. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/mat.h +176 -0
  53. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memcad.cc +599 -0
  54. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memcad.h +30 -0
  55. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memcad_parameters.cc +466 -0
  56. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memcad_parameters.h +251 -0
  57. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memorybus.cc +741 -0
  58. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/memorybus.h +150 -0
  59. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/nuca.cc +611 -0
  60. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/nuca.h +101 -0
  61. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/parameter.cc +2837 -0
  62. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/parameter.h +779 -0
  63. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/powergating.cc +129 -0
  64. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/powergating.h +86 -0
  65. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/regression.test +45 -0
  66. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/router.cc +311 -0
  67. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/router.h +115 -0
  68. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/sample_config_files/ddr3_cache.cfg +259 -0
  69. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/sample_config_files/diff_ddr3_cache.cfg +259 -0
  70. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/sample_config_files/lpddr3_cache.cfg +259 -0
  71. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/sample_config_files/wideio_cache.cfg +259 -0
  72. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/subarray.cc +205 -0
  73. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/subarray.h +70 -0
  74. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/16nm.dat +1 -0
  75. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/180nm-old.dat +294 -0
  76. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/180nm.dat +113 -0
  77. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/22nm.dat +113 -0
  78. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/32nm.dat +113 -0
  79. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/45nm.dat +113 -0
  80. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/65nm-old.dat +301 -0
  81. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/65nm.dat +113 -0
  82. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/90nm-old.dat +301 -0
  83. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/tech_params/90nm.dat +113 -0
  84. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/technology.cc +288 -0
  85. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/uca.cc +818 -0
  86. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/uca.h +116 -0
  87. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/version_cacti.h +40 -0
  88. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/wire.cc +830 -0
  89. hwcomponents_cacti-1.0.21/hwcomponents_cacti/cacti/wire.h +123 -0
  90. hwcomponents_cacti-1.0.21/hwcomponents_cacti/default_cfg.cfg +70 -0
  91. hwcomponents_cacti-1.0.21/hwcomponents_cacti/hwcomponents_cacti.py +730 -0
  92. hwcomponents_cacti-1.0.21/hwcomponents_cacti.egg-info/PKG-INFO +92 -0
  93. hwcomponents_cacti-1.0.21/hwcomponents_cacti.egg-info/SOURCES.txt +98 -0
  94. hwcomponents_cacti-1.0.21/hwcomponents_cacti.egg-info/dependency_links.txt +1 -0
  95. hwcomponents_cacti-1.0.21/hwcomponents_cacti.egg-info/requires.txt +1 -0
  96. hwcomponents_cacti-1.0.21/hwcomponents_cacti.egg-info/top_level.txt +2 -0
  97. hwcomponents_cacti-1.0.21/license.txt +19 -0
  98. hwcomponents_cacti-1.0.21/pyproject.toml +39 -0
  99. hwcomponents_cacti-1.0.21/setup.cfg +4 -0
  100. hwcomponents_cacti-1.0.21/setup.py +54 -0
@@ -0,0 +1,43 @@
1
+ name: Upload Python Package to PyPI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+ release:
9
+ types: [created]
10
+
11
+ jobs:
12
+ pypi-publish:
13
+ name: Publish package to PyPI
14
+ runs-on: ubuntu-latest
15
+ environment:
16
+ name: pypi
17
+ url: https://pypi.org/p/hwcomponents-cacti
18
+ permissions:
19
+ id-token: write
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0 # Fetch all history and tags for setuptools-scm
24
+ submodules: recursive # Check out all submodules
25
+ - name: Initialize and update submodules
26
+ run: |
27
+ git submodule update --init --recursive
28
+ - name: Set up Python
29
+ uses: actions/setup-python@v4
30
+ with:
31
+ python-version: "3.12"
32
+ - name: Install dependencies
33
+ run: |
34
+ python -m pip install --upgrade pip
35
+ pip install build
36
+ - name: Build package
37
+ working-directory: .
38
+ env:
39
+ PYTHONPATH: ${{ github.workspace }}
40
+ run: |
41
+ python -m build
42
+ - name: Publish package distributions to PyPI
43
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,64 @@
1
+ # Python bytecode
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Distribution / packaging
7
+ dist/
8
+ build/
9
+ *.egg-info/
10
+ *.egg
11
+
12
+ # Virtual environments
13
+ venv/
14
+ env/
15
+ .env/
16
+ .venv/
17
+ ENV/
18
+
19
+ # IDE specific files
20
+ .idea/
21
+ .vscode/
22
+ *.swp
23
+ *.swo
24
+ .DS_Store
25
+
26
+ # Jupyter Notebook
27
+ .ipynb_checkpoints
28
+
29
+ # Testing
30
+ .coverage
31
+ htmlcov/
32
+ .pytest_cache/
33
+ .tox/
34
+ nosetests.xml
35
+ coverage.xml
36
+ *.cover
37
+
38
+ # mypy
39
+ .mypy_cache/
40
+ .dmypy.json
41
+ dmypy.json
42
+
43
+ # pip
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Logs
48
+ *.log
49
+ logs/
50
+
51
+ # Local development settings
52
+ .env
53
+ .env.local
54
+ .env.*.local
55
+
56
+ # Documentation
57
+ docs/_build/
58
+ site/
59
+
60
+ # Temporary files
61
+ *.tmp
62
+ *.bak
63
+ *.swp
64
+ *~
@@ -0,0 +1,3 @@
1
+ [submodule "hwcomponents_cacti/cacti"]
2
+ path = hwcomponents_cacti/cacti
3
+ url = https://github.com/HewlettPackard/cacti.git
@@ -0,0 +1,10 @@
1
+ .PHONY: all test clean
2
+
3
+ build:
4
+ cd hwcomponents_cacti/cacti && make clean && make
5
+ chmod -R 775 hwcomponents_cacti/cacti || true
6
+ test -x hwcomponents_cacti/cacti/cacti
7
+
8
+ install:
9
+ make build
10
+ pip3 install .
@@ -0,0 +1,92 @@
1
+ Metadata-Version: 2.4
2
+ Name: hwcomponents_cacti
3
+ Version: 1.0.21
4
+ Summary: A package for estimating the energy and area of memories with CACTI
5
+ Author-email: Tanner Andrulis <andrulis@mit.edu>
6
+ License-Expression: MIT
7
+ Keywords: accelerator,hardware,energy,estimation,CACTI
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
11
+ Requires-Python: >=3.12
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: hwcomponents
14
+
15
+ # HWComponents-Cacti
16
+
17
+ This model connects CACTI to the HWComponents. It provides models for SRAM, DRAM, and
18
+ caches. This is adapted from the Accelergy CACTI plug-in.
19
+
20
+ These models are for use with the HWComponents package, found at
21
+ https://accelergy-project.github.io/hwcomponents/.
22
+
23
+ ## Installation
24
+
25
+ Install from PyPI:
26
+
27
+ ```bash
28
+ pip install hwcomponents-cacti
29
+
30
+ # Check that the installation is successful
31
+ hwc --list | grep SRAM
32
+ hwc --list | grep DRAM
33
+ hwc --list | grep Cache
34
+ ```
35
+
36
+ ## Citation
37
+
38
+ If you use this library in your work, please cite the following:
39
+
40
+ ```bibtex
41
+ @INPROCEEDINGS{cimloop,
42
+ author={Andrulis, Tanner and Emer, Joel S. and Sze, Vivienne},
43
+ booktitle={2024 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)},
44
+ title={CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool},
45
+ year={2024},
46
+ volume={},
47
+ number={},
48
+ pages={10-23},
49
+ doi={10.1109/ISPASS61541.2024.00012}
50
+ }
51
+ @inproceedings{accelergy,
52
+ author = {Wu, Yannan Nellie and Emer, Joel S and Sze, Vivienne},
53
+ booktitle = {2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD)},
54
+ title = {Accelergy: An architecture-level energy estimation methodology for accelerator designs},
55
+ year = {2019},
56
+ }
57
+ @article{shivakumar2001cacti,
58
+ title={Cacti 3.0: An integrated cache timing, power, and area model},
59
+ author={Shivakumar, Premkishore and Jouppi, Norman P},
60
+ year={2001},
61
+ publisher={Technical Report 2001/2, Compaq Computer Corporation}
62
+ }
63
+ @ARTICLE{wilton1996cacti,
64
+ title={CACTI: an enhanced cache access and cycle time model},
65
+ author={Wilton, S.J.E. and Jouppi, N.P.},
66
+ journal={IEEE Journal of Solid-State Circuits},
67
+ year={1996},
68
+ volume={31},
69
+ number={5},
70
+ pages={677-688},
71
+ keywords={Driver circuits;Costs;Decoding;Analytical models;Stacking;Delay estimation;Computer architecture;Equations;Councils;Wiring},
72
+ doi={10.1109/4.509850}
73
+ }
74
+ @article{balasubramonian2017cacti,
75
+ author = {Balasubramonian, Rajeev and Kahng, Andrew B. and Muralimanohar, Naveen and Shafiee, Ali and Srinivas, Vaishnav},
76
+ title = {CACTI 7: New Tools for Interconnect Exploration in Innovative Off-Chip Memories},
77
+ year = {2017},
78
+ issue_date = {June 2017},
79
+ publisher = {Association for Computing Machinery},
80
+ address = {New York, NY, USA},
81
+ volume = {14},
82
+ number = {2},
83
+ issn = {1544-3566},
84
+ url = {https://doi.org/10.1145/3085572},
85
+ doi = {10.1145/3085572},
86
+ journal = {ACM Trans. Archit. Code Optim.},
87
+ month = jun,
88
+ articleno = {14},
89
+ numpages = {25},
90
+ keywords = {DRAM, Memory, NVM, interconnects, tools}
91
+ }
92
+ ```
@@ -0,0 +1,78 @@
1
+ # HWComponents-Cacti
2
+
3
+ This model connects CACTI to the HWComponents. It provides models for SRAM, DRAM, and
4
+ caches. This is adapted from the Accelergy CACTI plug-in.
5
+
6
+ These models are for use with the HWComponents package, found at
7
+ https://accelergy-project.github.io/hwcomponents/.
8
+
9
+ ## Installation
10
+
11
+ Install from PyPI:
12
+
13
+ ```bash
14
+ pip install hwcomponents-cacti
15
+
16
+ # Check that the installation is successful
17
+ hwc --list | grep SRAM
18
+ hwc --list | grep DRAM
19
+ hwc --list | grep Cache
20
+ ```
21
+
22
+ ## Citation
23
+
24
+ If you use this library in your work, please cite the following:
25
+
26
+ ```bibtex
27
+ @INPROCEEDINGS{cimloop,
28
+ author={Andrulis, Tanner and Emer, Joel S. and Sze, Vivienne},
29
+ booktitle={2024 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)},
30
+ title={CiMLoop: A Flexible, Accurate, and Fast Compute-In-Memory Modeling Tool},
31
+ year={2024},
32
+ volume={},
33
+ number={},
34
+ pages={10-23},
35
+ doi={10.1109/ISPASS61541.2024.00012}
36
+ }
37
+ @inproceedings{accelergy,
38
+ author = {Wu, Yannan Nellie and Emer, Joel S and Sze, Vivienne},
39
+ booktitle = {2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD)},
40
+ title = {Accelergy: An architecture-level energy estimation methodology for accelerator designs},
41
+ year = {2019},
42
+ }
43
+ @article{shivakumar2001cacti,
44
+ title={Cacti 3.0: An integrated cache timing, power, and area model},
45
+ author={Shivakumar, Premkishore and Jouppi, Norman P},
46
+ year={2001},
47
+ publisher={Technical Report 2001/2, Compaq Computer Corporation}
48
+ }
49
+ @ARTICLE{wilton1996cacti,
50
+ title={CACTI: an enhanced cache access and cycle time model},
51
+ author={Wilton, S.J.E. and Jouppi, N.P.},
52
+ journal={IEEE Journal of Solid-State Circuits},
53
+ year={1996},
54
+ volume={31},
55
+ number={5},
56
+ pages={677-688},
57
+ keywords={Driver circuits;Costs;Decoding;Analytical models;Stacking;Delay estimation;Computer architecture;Equations;Councils;Wiring},
58
+ doi={10.1109/4.509850}
59
+ }
60
+ @article{balasubramonian2017cacti,
61
+ author = {Balasubramonian, Rajeev and Kahng, Andrew B. and Muralimanohar, Naveen and Shafiee, Ali and Srinivas, Vaishnav},
62
+ title = {CACTI 7: New Tools for Interconnect Exploration in Innovative Off-Chip Memories},
63
+ year = {2017},
64
+ issue_date = {June 2017},
65
+ publisher = {Association for Computing Machinery},
66
+ address = {New York, NY, USA},
67
+ volume = {14},
68
+ number = {2},
69
+ issn = {1544-3566},
70
+ url = {https://doi.org/10.1145/3085572},
71
+ doi = {10.1145/3085572},
72
+ journal = {ACM Trans. Archit. Code Optim.},
73
+ month = jun,
74
+ articleno = {14},
75
+ numpages = {25},
76
+ keywords = {DRAM, Memory, NVM, interconnects, tools}
77
+ }
78
+ ```
@@ -0,0 +1 @@
1
+ from .hwcomponents_cacti import *
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '1.0.21'
32
+ __version_tuple__ = version_tuple = (1, 0, 21)
33
+
34
+ __commit_id__ = commit_id = 'g017430f53'
@@ -0,0 +1,194 @@
1
+ # Cache size
2
+ //-size (bytes) 528
3
+ //-size (bytes) 4096
4
+ //-size (bytes) 262144
5
+ //-size (bytes) 1048576
6
+ //-size (bytes) 2097152
7
+ //-size (bytes) 4194304
8
+ //-size (bytes) 8388608
9
+ //-size (bytes) 16777216
10
+ //-size (bytes) 33554432
11
+ //-size (bytes) 134217728
12
+ //-size (bytes) 268435456
13
+ //-size (bytes) 536870912
14
+ //-size (bytes) 67108864
15
+ //-size (bytes) 536870912
16
+ //-size (bytes) 1073741824
17
+ # For 3D DRAM memory please use Gb as units
18
+ -size (Gb) 2
19
+
20
+ # Line size
21
+ //-block size (bytes) 8
22
+ -block size (bytes) 128
23
+
24
+ # To model Fully Associative cache, set associativity to zero
25
+ //-associativity 0
26
+ //-associativity 2
27
+ //-associativity 4
28
+ -associativity 1
29
+ //-associativity 16
30
+
31
+ -read-write port 1
32
+ -exclusive read port 0
33
+ -exclusive write port 0
34
+ -single ended read ports 0
35
+
36
+ # Multiple banks connected using a bus
37
+ -UCA bank count 16
38
+ //-technology (u) 0.032
39
+ //-technology (u) 0.040
40
+ //-technology (u) 0.065
41
+ //-technology (u) 0.078
42
+ -technology (u) 0.080
43
+
44
+ # following three parameters are meaningful only for main memories
45
+
46
+ //-page size (bits) 8192
47
+ -burst length 4
48
+ -internal prefetch width 1
49
+
50
+ # following parameter can have one of five values -- (itrs-hp, itrs-lstp, itrs-lop, lp-dram, comm-dram)
51
+ //-Data array cell type - "itrs-hp"
52
+ //-Data array cell type - "itrs-lstp"
53
+ //-Data array cell type - "itrs-lop"
54
+ -Data array cell type - "comm-dram"
55
+
56
+ # following parameter can have one of three values -- (itrs-hp, itrs-lstp, itrs-lop)
57
+ //-Data array peripheral type - "itrs-hp"
58
+ -Data array peripheral type - "itrs-lstp"
59
+ //-Data array peripheral type - "itrs-lop"
60
+
61
+ # following parameter can have one of five values -- (itrs-hp, itrs-lstp, itrs-lop, lp-dram, comm-dram)
62
+ -Tag array cell type - "itrs-hp"
63
+ //-Tag array cell type - "itrs-lstp"
64
+
65
+ # following parameter can have one of three values -- (itrs-hp, itrs-lstp, itrs-lop)
66
+ -Tag array peripheral type - "itrs-hp"
67
+ //-Tag array peripheral type - "itrs-lstp"
68
+
69
+ # Bus width include data bits and address bits required by the decoder
70
+ //-output/input bus width 16
71
+ //-output/input bus width 64
72
+ -output/input bus width 64
73
+
74
+ // 300-400 in steps of 10
75
+ -operating temperature (K) 350
76
+
77
+ # Type of memory - cache (with a tag array) or ram (scratch ram similar to a register file)
78
+ # or main memory (no tag array and every access will happen at a page granularity Ref: CACTI 5.3 report)
79
+ //-cache type "cache"
80
+ //-cache type "ram"
81
+ //-cache type "main memory"
82
+ -cache type "3D memory or 2D main memory"
83
+
84
+ # Parameters for 3D DRAM
85
+ //-page size (bits) 16384
86
+ -page size (bits) 8192
87
+ //-page size (bits) 4096
88
+ -burst depth 4
89
+ -IO width 4
90
+ -system frequency (MHz) 266
91
+
92
+ -stacked die count 1
93
+ -partitioning granularity 0 // 0: coarse-grained rank-level; 1: fine-grained rank-level
94
+ //-TSV projection 1 // 0: ITRS aggressive; 1: industrial conservative
95
+
96
+ ## End of parameters for 3D DRAM
97
+
98
+ # to model special structure like branch target buffers, directory, etc.
99
+ # change the tag size parameter
100
+ # if you want cacti to calculate the tagbits, set the tag size to "default"
101
+ -tag size (b) "default"
102
+ //-tag size (b) 45
103
+
104
+ # fast - data and tag access happen in parallel
105
+ # sequential - data array is accessed after accessing the tag array
106
+ # normal - data array lookup and tag access happen in parallel
107
+ # final data block is broadcasted in data array h-tree
108
+ # after getting the signal from the tag array
109
+ -access mode (normal, sequential, fast) - "fast"
110
+ //-access mode (normal, sequential, fast) - "normal"
111
+ //-access mode (normal, sequential, fast) - "sequential"
112
+
113
+
114
+ # DESIGN OBJECTIVE for UCA (or banks in NUCA)
115
+ -design objective (weight delay, dynamic power, leakage power, cycle time, area) 0:0:0:0:100
116
+
117
+ # Percentage deviation from the minimum value
118
+ # Ex: A deviation value of 10:1000:1000:1000:1000 will try to find an organization
119
+ # that compromises at most 10% delay.
120
+ # NOTE: Try reasonable values for % deviation. Inconsistent deviation
121
+ # percentage values will not produce any valid organizations. For example,
122
+ # 0:0:100:100:100 will try to identify an organization that has both
123
+ # least delay and dynamic power. Since such an organization is not possible, CACTI will
124
+ # throw an error. Refer CACTI-6 Technical report for more details
125
+ -deviate (delay, dynamic power, leakage power, cycle time, area) 50:100000:100000:100000:1000000
126
+
127
+ # Objective for NUCA
128
+ -NUCAdesign objective (weight delay, dynamic power, leakage power, cycle time, area) 0:0:0:0:100
129
+ -NUCAdeviate (delay, dynamic power, leakage power, cycle time, area) 10:10000:10000:10000:10000
130
+
131
+ # Set optimize tag to ED or ED^2 to obtain a cache configuration optimized for
132
+ # energy-delay or energy-delay sq. product
133
+ # Note: Optimize tag will disable weight or deviate values mentioned above
134
+ # Set it to NONE to let weight and deviate values determine the
135
+ # appropriate cache configuration
136
+ //-Optimize ED or ED^2 (ED, ED^2, NONE): "ED"
137
+ //-Optimize ED or ED^2 (ED, ED^2, NONE): "ED^2"
138
+ -Optimize ED or ED^2 (ED, ED^2, NONE): "NONE"
139
+
140
+ -Cache model (NUCA, UCA) - "UCA"
141
+ //-Cache model (NUCA, UCA) - "NUCA"
142
+
143
+ # In order for CACTI to find the optimal NUCA bank value the following
144
+ # variable should be assigned 0.
145
+ -NUCA bank count 0
146
+
147
+ # NOTE: for nuca network frequency is set to a default value of
148
+ # 5GHz in time.c. CACTI automatically
149
+ # calculates the maximum possible frequency and downgrades this value if necessary
150
+
151
+ # By default CACTI considers both full-swing and low-swing
152
+ # wires to find an optimal configuration. However, it is possible to
153
+ # restrict the search space by changing the signaling from "default" to
154
+ # "fullswing" or "lowswing" type.
155
+ -Wire signaling (fullswing, lowswing, default) - "Global_5"
156
+ //-Wire signaling (fullswing, lowswing, default) - "default"
157
+ //-Wire signaling (fullswing, lowswing, default) - "lowswing"
158
+
159
+ //-Wire inside mat - "global"
160
+ -Wire inside mat - "semi-global"
161
+ -Wire outside mat - "global"
162
+ //-Wire outside mat - "semi-global"
163
+
164
+ -Interconnect projection - "conservative"
165
+ //-Interconnect projection - "aggressive"
166
+
167
+ # Contention in network (which is a function of core count and cache level) is one of
168
+ # the critical factor used for deciding the optimal bank count value
169
+ # core count can be 4, 8, or 16
170
+ //-Core count 4
171
+ -Core count 8
172
+ //-Core count 16
173
+ -Cache level (L2/L3) - "L3"
174
+
175
+ -Add ECC - "false"
176
+
177
+ //-Print level (DETAILED, CONCISE) - "CONCISE"
178
+ -Print level (DETAILED, CONCISE) - "DETAILED"
179
+
180
+ # for debugging
181
+ //-Print input parameters - "true"
182
+ -Print input parameters - "false"
183
+ # force CACTI to model the cache with the
184
+ # following Ndbl, Ndwl, Nspd, Ndsam,
185
+ # and Ndcm values
186
+ -Force cache config - "true"
187
+ //-Force cache config - "false"
188
+ -Ndwl 128
189
+ -Ndbl 32
190
+ -Nspd 1
191
+ -Ndcm 1
192
+ -Ndsam1 1
193
+ -Ndsam2 1
194
+