Version: 2.0
README Last Updated: 2/17/2025
ACT is an carbon modeling tool to enable carbon-aware design space exploration. ACT comprises an analytical, architectural carbon-footprint model and use-case dependent optimization metrics to estimate the carbon footprint of hardware. The proposed model estimates emissions from hardware manufacturing (i.e., embodied carbon) based on workload characteristics, hardware specifications, semiconductor fab characteristics, and environmental factors.
ACT addresses a crucial gap in quantifying and enabling sustainability-driven hardware design space exploration, and serves as a call-to-action for computer architects to consider sustainability as a first-order citizen, alongside performance, power, and area (PPA).
If you use ACT for your research, please consider contributing the resulting system specification for your carbon model analysis to the bill of materials directory (ACT/act/boms
).
To get started, first clone ACT and make sure you have the following third-party Python dependencies:
- pint -
pip install pint
- pyyaml -
pip install pyyaml
- Make sure you have Python 3.12.9
ACT can be used either as a standalone binary or an API where you can program your codebase and use cases against.
The code is built on
Python 3.12.9
.
To use ACT as a standalone binary tool:
- Go to the ACT root directory
- From the command line, run
act_model.py -m boms/dellr740.yaml
which should run an existing specification for the Dell power edge server - This should export the results to a report yaml file where you can inspect the results
For the full list of command line arguments, use python -m act.act_model --help
.
To program against ACT in your own script:
- Go to the ACT root directory
- In your python script, import ACTModel which is the top level Python class from act_model.py
- Instantiate ACTModel which will instantiate and load all of the submodels
- Generate a bill of materials instance BOM from bom.py which specifies the resources for the device you want to study
- Call the ACTModel
get_carbon()
function with the bill of materials instance as well as other parameters (see theget_carbon()
function) - This should return a dictionary of the carbon results by each component in the system
For complex systems, we recommend using the ACT bill of materials yaml specification to specify your system architecture. The bill of materials specification is composed of three main sections:
silicon
: Any silicon systems like logic, DRAM, SSD, HDD, etc.materials
: Materials required for the frame and enclosure of the systempassives
: Passive components (ex., capacitors, etc.)
A sample bill of materials file is shown below:
name: Test bill of material
passives:
cap0:
category: capacitor
type: mlcc
quantity: 2
weight: 0.03 mg
silicon:
dut:
area: 10 mm2
fab_yield: 0.87
process: 14nm
n_ics: 1
fab_ci: taiwan
dram:
model: dram
capacity: 1 GB
fab_yield: 0.9
process: ddr4_10nm
ssd:
model: flash
capacity: 2 TB
fab_yield: 0.88
process: nand_10nm
hdd:
model: hdd
capacity: 1 TB
fab_yield: 0.92
process: BarraCuda
materials:
fasteners:
category: enclosure
type: steel
weight: 0.6 g
pcb:
category: pcb
area: 10 cm2
layers: 4
battery:
category: battery
capacity: 5000 mWh
You can either write your own similar bill of materials or start from one of the existing bill of materials in the boms
directory.
Once you have your bill of materials specification, you can run it with ACT using python -m act.act_model -m <your bom yaml>
.
For instance, python -m act.act_model -m act/boms/dellr740.yaml
will run one of the stock Dell R740 models.
The top level binary is ACTModel.py which orchestrates the calculations across the underlying embodied architectural carbon model for logic, memory, storage, etc.
ACT currently supports the following models:
logic_model.py
: Application processor and digital logic embodied carbon modeldram_model.py
: DRAM embodied carbon capacity-based modelsssd_model.py
: SSD embodied carbon capacity-based modelshdd_model.py
: HDD embodied carbon capacity-based modelsop_model.py
: Operational emissions modelcap_model.py
: Capacitor manufacturing embodied carbon modelmaterials_model.py
: Frame and enclosure materials embodied carbon modelpcb_model.py
: Printed circuit board area-based embodied carbon modelbattery_model.py
: Battery capacity-based embodied carbon model
Data for the architectural carbon model draw from sustainability literature and industry sources (additional information can be found in our paper, see details below).
Central to ACT is an analytical, architectural carbon model to estimate operational and embodied carbon. We describe the model below and details can be found in our paper.
At the highest level the analytical carbon model combines operational and embodied carbon. As embodied carbon is generated at design and manufacturing time, we amortize emissions across the duration of a software application (T) over the lifetime of a hardware platform (LT).
The operational carbon owes to the product of the carbon intensity of energy consumed and the energy expenditure of running an application on hardware device.
The embodied carbon owes to both packaging overhead and the embodied carbon of individual hardware components. For packaging overheads we multiply the number of integrated circuits (Nr) with a packaging footprint (Kr). The embodied carbon of all integrated circuits (e.g., application processors and SoC's, DRAM memory, SSD storage, HDD storage) are aggregated.
The embodied footprint of application processors and SoC's depends on the die area, carbon intensity of the energy consumed by the fab and energy consumed per unit area manufactured, the GHG footprint of gasses and chemicals per unit area manufactured, the footprint of procuruing raw materials per unit area, and fabrication yield.
Finally, the embodied carbon of the memory and storage devices depends on the carbon per storage intensity and the storage capacity of the modules.
Refer to the original paper for the details.
In addition to the architectural carbon model, it is crucial to have use-case dependent carbon optimization metrics to quantitatively explore sustainable system design spaces. ACT proposes four sustainability-driven optimization metrics to aid early design space exploration. Here C stands for embodied carbon, D for delay, and E for energy.
Metric | Description | Use case |
---|---|---|
Carbon-delay-product | Balance carbon and performance (e.g., sustainable data center) | |
Carbon-energy-product | Balance carbon and energy (e.g., sustainable mobile device) | |
Carbon square-energy-product | Sustainable device dominated by embodied carbon | |
Carbon-energy squared-product | Sustainable device dominated by operational carbon |
As examples we have provided two comparisons with ACT against life cycle analyses (LCA's). The first with Fairphone 3 and the second with the Dell R740 LCA's.
You can find some of the sample bill of materials for these analyses in the act/boms
directory.
To read the paper please visit this link
If you use ACT
, please cite us:
@inproceedings{GuptaACT2022,
author = {Gupta, Udit and Elgamal, Mariam and Hills, Gage and Wei, Gu-Yeon and Lee, Hsien-Hsin S. and Brooks, David and Wu, Carole-Jean},
title = {ACT: Designing Sustainable Computer Systems with an Architectural Carbon Modeling Tool},
year = {2022},
isbn = {9781450386104},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3470496.3527408},
doi = {10.1145/3470496.3527408},
abstract = {Given the performance and efficiency optimizations realized by the computer systems and architecture community over the last decades, the dominating source of computing's carbon footprint is shifting from operational emissions to embodied emissions. These embodied emissions owe to hardware manufacturing and infrastructure-related activities. Despite the rising embodied emissions, there is a distinct lack of architectural modeling tools to quantify and optimize the end-to-end carbon footprint of computing. This work proposes ACT, an architectural carbon footprint modeling framework, to enable carbon characterization and sustainability-driven early design space exploration. Using ACT we demonstrate optimizing hardware for carbon yields distinct solutions compared to optimizing for performance and efficiency. We construct use cases, based on the three tenets of sustainable design---Reduce, Reuse, Recycle---to highlight future methods that enable strong performance and efficiency scaling in an environmentally sustainable manner.},
booktitle = {Proceedings of the 49th Annual International Symposium on Computer Architecture},
pages = {784–799},
numpages = {16},
keywords = {energy, sustainable computing, computer architecture, mobile, manufacturing},
location = {New York, New York},
series = {ISCA '22}
}
ACT is MIT licensed, as found in the LICENSE file.