├── .devcontainer ├── Dockerfile ├── devcontainer.json └── on_create.sh ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── .vscode └── settings.json ├── Gemfile ├── LICENSE ├── README.md ├── _config.yml ├── _data └── course.yml ├── _includes ├── footer.html ├── ga.html ├── navigation.html ├── next_in_module.html ├── next_module.html ├── page-toc.html ├── side_toolbar.html └── toc.html ├── _layouts ├── base.html ├── course_page.html ├── index.html ├── page-toc.html └── page.html ├── _sass ├── _custom.scss ├── bootstrap │ └── scss │ │ ├── _alert.scss │ │ ├── _badge.scss │ │ ├── _breadcrumb.scss │ │ ├── _button-group.scss │ │ ├── _buttons.scss │ │ ├── _card.scss │ │ ├── _carousel.scss │ │ ├── _close.scss │ │ ├── _code.scss │ │ ├── _custom-forms.scss │ │ ├── _dropdown.scss │ │ ├── _forms.scss │ │ ├── _functions.scss │ │ ├── _grid.scss │ │ ├── _images.scss │ │ ├── _input-group.scss │ │ ├── _jumbotron.scss │ │ ├── _list-group.scss │ │ ├── _media.scss │ │ ├── _mixins.scss │ │ ├── _modal.scss │ │ ├── _nav.scss │ │ ├── _navbar.scss │ │ ├── _pagination.scss │ │ ├── _popover.scss │ │ ├── _print.scss │ │ ├── _progress.scss │ │ ├── _reboot.scss │ │ ├── _root.scss │ │ ├── _spinners.scss │ │ ├── _tables.scss │ │ ├── _toasts.scss │ │ ├── _tooltip.scss │ │ ├── _transitions.scss │ │ ├── _type.scss │ │ ├── _utilities.scss │ │ ├── _variables.scss │ │ ├── bootstrap-grid.scss │ │ ├── bootstrap-reboot.scss │ │ ├── bootstrap.scss │ │ ├── mixins │ │ ├── _alert.scss │ │ ├── _background-variant.scss │ │ ├── _badge.scss │ │ ├── _border-radius.scss │ │ ├── _box-shadow.scss │ │ ├── _breakpoints.scss │ │ ├── _buttons.scss │ │ ├── _caret.scss │ │ ├── _clearfix.scss │ │ ├── _deprecate.scss │ │ ├── _float.scss │ │ ├── _forms.scss │ │ ├── _gradients.scss │ │ ├── _grid-framework.scss │ │ ├── _grid.scss │ │ ├── _hover.scss │ │ ├── _image.scss │ │ ├── _list-group.scss │ │ ├── _lists.scss │ │ ├── _nav-divider.scss │ │ ├── _pagination.scss │ │ ├── _reset-text.scss │ │ ├── _resize.scss │ │ ├── _screen-reader.scss │ │ ├── _size.scss │ │ ├── _table-row.scss │ │ ├── _text-emphasis.scss │ │ ├── _text-hide.scss │ │ ├── _text-truncate.scss │ │ ├── _transition.scss │ │ └── _visibility.scss │ │ ├── utilities │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _borders.scss │ │ ├── _clearfix.scss │ │ ├── _display.scss │ │ ├── _embed.scss │ │ ├── _flex.scss │ │ ├── _float.scss │ │ ├── _interactions.scss │ │ ├── _overflow.scss │ │ ├── _position.scss │ │ ├── _screenreaders.scss │ │ ├── _shadows.scss │ │ ├── _sizing.scss │ │ ├── _spacing.scss │ │ ├── _stretched-link.scss │ │ ├── _text.scss │ │ └── _visibility.scss │ │ └── vendor │ │ └── _rfs.scss └── p2pu-theme │ ├── _buttons.scss │ ├── _custom.scss │ ├── _fonts.scss │ ├── _footer.scss │ ├── _forum.scss │ ├── _layout.scss │ ├── _menu.scss │ ├── _mixins.scss │ ├── _typography.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── accordion.scss │ └── base.scss ├── assets ├── css │ ├── p2pustrap-custom.scss │ └── site.css ├── img │ ├── 1280px-Haswell_Chip.jpeg │ ├── BasicDeclare.png │ ├── ExecuteTemplate.png │ ├── ISAInd.png │ ├── ISAParser.png │ ├── ROpFormat.png │ ├── decode.png │ ├── favicon.ico │ ├── favicon │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-384x384.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── mstile-150x150.png │ │ ├── safari-pinned-tab.svg │ │ └── site.webmanifest │ ├── gem5CPUs.png │ ├── memTypes.png │ ├── research-cycle.png │ └── thumbnail.png ├── js │ ├── gh_link_helper.js │ ├── init.js │ ├── jquery.dropotron.min.js │ ├── jquery.min.js │ └── modernizr-2.6.2.min.js └── slides │ ├── develop-02-sim-object.pdf │ ├── develop-06-cpu-instructions.pdf │ ├── develop-09-ruby.pdf │ ├── develop-10-ruby-network.pdf │ ├── develop-gem5-tutorial-2022-gpu.pdf │ ├── extra-01-SST.pdf │ ├── extra-02-contributing.pdf │ ├── extra-KVM-with-m5-and-Memory-System.pdf │ ├── intro-02-intro-jason.pdf │ ├── intro-03-simulation-jason.pdf │ ├── intro-04-python3-reminder-hoa.pdf │ ├── intro-05-intro-devel-jason.pdf │ ├── using-gem5-02-gem5-stdlib-tutorial.pdf │ ├── using-gem5-03-gem5-running-tutorial.pdf │ ├── using-gem5-04-gem5-caches-tutorial.pdf │ ├── using-gem5-05-gem5-cpus-tutorial 2.pdf │ ├── using-gem5-08-gem5-fullsystem-tutorial.pdf │ └── using-gem5-09-accelerating-simulation.pdf ├── creating-content.md ├── docker ├── Dockerfile ├── Dockerfile-builder ├── Makefile ├── README.md └── gnu-cross-compilers │ ├── Dockerfile-aarch64 │ ├── Dockerfile-riscv64 │ └── cross-compiler-build.sh ├── gem5_stubgen.py ├── hints.txt ├── index.md ├── materials ├── developing-gem5-models │ ├── 02-simobj │ │ ├── README.md │ │ ├── bootcamp │ │ │ ├── hello-sim-object │ │ │ │ ├── GoodbyeSimObject.py │ │ │ │ ├── HelloSimObject.py │ │ │ │ ├── SConscript │ │ │ │ ├── completed │ │ │ │ │ ├── HelloSimObject.py │ │ │ │ │ ├── hello_sim_object.cc │ │ │ │ │ └── hello_sim_object.hh │ │ │ │ ├── goodbye_sim_object.cc │ │ │ │ ├── goodbye_sim_object.hh │ │ │ │ ├── hello_sim_object.cc │ │ │ │ ├── hello_sim_object.hh │ │ │ │ └── run_hello.py │ │ │ ├── simple-cache-object │ │ │ │ ├── SConscript │ │ │ │ ├── SimpleCacheObject.py │ │ │ │ ├── completed │ │ │ │ │ ├── simple_cache_object.cc │ │ │ │ │ └── simple_cache_object.hh │ │ │ │ ├── simple_cache_object.cc │ │ │ │ └── simple_cache_object.hh │ │ │ └── simple-mem-object │ │ │ │ ├── SConscript │ │ │ │ ├── SimpleMemObject.py │ │ │ │ ├── completed │ │ │ │ ├── simple_mem_object.cc │ │ │ │ └── simple_mem_object.hh │ │ │ │ ├── run_simple_mem_object.py │ │ │ │ ├── simple_mem_object.cc │ │ │ │ └── simple_mem_object.hh │ │ └── complete │ │ │ ├── MySimpleObject.py │ │ │ ├── SConscript │ │ │ ├── my_simple_object.cc │ │ │ ├── my_simple_object.hh │ │ │ └── run_simple.py │ ├── 03-events │ │ ├── MyHelloObject.py │ │ ├── README.md │ │ ├── SConscript │ │ ├── complete │ │ │ ├── MyHelloObject.py │ │ │ ├── SConscript │ │ │ ├── my_goodbye_object.cc │ │ │ ├── my_goodbye_object.hh │ │ │ ├── my_hello_object.cc │ │ │ ├── my_hello_object.hh │ │ │ └── run_hello_goodbye.py │ │ ├── my_goodbye_object.cc │ │ ├── my_goodbye_object.hh │ │ ├── my_hello_object.cc │ │ ├── my_hello_object.hh │ │ └── run_hello_goodbye.py │ ├── 06-cpu-instructions │ │ ├── README.md │ │ ├── add16_test.py │ │ ├── finished-material │ │ │ ├── 0001-arch-riscv-Add-some-RISC-V-packed-SIMD-instructions.patch │ │ │ ├── add16_sample_trace │ │ │ └── sra16_sample_trace │ │ ├── sra16_test.py │ │ └── tests │ │ │ ├── add16_test │ │ │ ├── add16_test.c │ │ │ ├── sra16_test │ │ │ └── sra16_test.c │ ├── 09-ruby │ │ ├── MyMSI-cache.sm │ │ ├── MyMSI-dir.sm │ │ ├── MyMSI-msg.sm │ │ ├── MyMSI.slicc │ │ ├── README.md │ │ ├── SConsopts │ │ └── complete │ │ │ ├── MyMSI-cache.sm │ │ │ ├── MyMSI-dir.sm │ │ │ ├── MyMSI-msg.sm │ │ │ ├── MyMSI.slicc │ │ │ └── SConsopts │ ├── 10-ruby-network │ │ ├── SConscript │ │ ├── garnet_mesh.py │ │ ├── mi_example_cache_network.py │ │ ├── network_config.py │ │ └── topologies │ │ │ ├── garnet_mesh.py │ │ │ └── garnet_pt2pt.py │ └── 11-gpu │ │ └── README.md ├── extra-topics │ ├── 01-sst-examples │ │ ├── gem5_configuration.py │ │ └── sst_configuration.py │ ├── 02-monitor-and-trace │ │ ├── simple.py │ │ ├── simple_comm.py │ │ ├── simple_comm_trace.py │ │ └── simple_retrace.py │ └── 03-cpu-and-caches │ │ ├── extra_topic_cpu_and_cache.py │ │ ├── mm-riscv-gem5 │ │ └── mm.cpp ├── introduction │ ├── 02-gem5-basics │ │ ├── 01-basics │ │ │ ├── 01-gem5-hello-world.py │ │ │ ├── 02-types-examples.py │ │ │ ├── 03-control-flow-examples.py │ │ │ ├── 04-functions-examples.py │ │ │ └── 05-file-examples.py │ │ ├── 02-frequently-used-features │ │ │ ├── 01-classes.py │ │ │ ├── 02-class-variables.py │ │ │ ├── 03-abstract-classes.py │ │ │ ├── 04-import-modules.py │ │ │ ├── 05-vars-function.py │ │ │ ├── 06-f-strings.py │ │ │ ├── 07-list-comprehension.py │ │ │ ├── 08-generators.py │ │ │ ├── 09-argparse.py │ │ │ ├── 10-seaborn.py │ │ │ └── CustomClasses.py │ │ └── 03-using-gem5 │ │ │ ├── 01-m5-library-example-1.py │ │ │ ├── 02-m5-library-example-2.py │ │ │ ├── 03-m5-library-example-3.py │ │ │ └── 04-m5-library-example-4.py │ └── README.md └── using-gem5 │ ├── 02-stdlib │ ├── complete │ │ ├── README.md │ │ ├── cache-hierarchy-comparison-complete.py │ │ ├── clever-simulator-use-complete.py │ │ ├── hello-world-complete.py │ │ ├── hello-world-with-cache-complete.py │ │ ├── hello-world-with-unique-cache.py │ │ ├── private_l1_shared_l2_cache_hierarchy │ │ │ ├── __init__.py │ │ │ ├── l1cache.py │ │ │ ├── l2cache.py │ │ │ └── private_l1_shared_l2_cache_complete.py │ │ ├── simple-simulator-use-complete.py │ │ ├── unique_cache_hierarchy │ │ │ ├── __init__.py │ │ │ ├── l1cache.py │ │ │ └── unique_cache_hierarchy_complete.py │ │ └── x86-full-system-complete.py │ ├── hello-world.py │ ├── m5-exit-example │ │ ├── Makefile │ │ ├── m5-exit-example │ │ └── m5-exit-example.c │ ├── matrix-multiply │ │ ├── Makefile │ │ ├── matrix-multiply │ │ └── matrix-multiply.c │ ├── obtaining-resources.py │ ├── simulator-use.py │ ├── unique_cache_hierarchy │ │ ├── __init__.py │ │ ├── l1cache.py │ │ └── unique_cache_hierarchy.py │ └── x86-full-system.py │ ├── 03-running │ ├── example1 │ │ ├── exampleBin │ │ ├── exampleBin_m5 │ │ ├── exampleBin_m5_arm │ │ └── se_example.cpp │ ├── example2 │ │ ├── dir_example.cpp │ │ └── exampleBin │ ├── example3 │ │ ├── plots.ipynb │ │ ├── traffGenRes │ │ │ ├── m5out_ddr3_R50 │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_ddr3_RO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_ddr3_WO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_ddr4_R50 │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_ddr4_RO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_ddr4_WO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_nvm_R50 │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ ├── m5out_nvm_RO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ │ └── m5out_nvm_WO │ │ │ │ ├── config.dot │ │ │ │ ├── config.dot.pdf │ │ │ │ ├── config.dot.svg │ │ │ │ ├── config.ini │ │ │ │ ├── config.json │ │ │ │ └── stats.txt │ │ ├── traffGen_example.py │ │ └── traffGen_run.sh │ └── simple.py │ ├── 04-cache-models │ └── simple_cache_run.py │ ├── 05-cpu-models │ ├── IntMM │ │ ├── .gitignore │ │ ├── IntMM.c │ │ └── Makefile │ ├── README.md │ ├── cpu-models.py │ └── finished-material │ │ ├── cpu-models-normal-cache.py │ │ ├── cpu-models-small-cache.py │ │ ├── stats-normal-cache │ │ ├── stats-atomic.txt │ │ ├── stats-o3_cpu.txt │ │ └── stats-timing.txt │ │ └── stats-small-cache │ │ ├── stats-atomic.txt │ │ ├── stats-o3_cpu.txt │ │ └── stats-timing.txt │ ├── 08-fullsystem │ ├── riscv-fs.py │ └── x86-npb-benchmarks.py │ └── 09-accelerating-simulations │ ├── 00-prerequisite-runscript │ ├── README.md │ ├── completed │ │ └── base-system.py │ └── template │ │ └── base-system.py │ ├── 01-modifying-runscript │ ├── completed │ │ └── base-system.py │ └── template │ │ └── base-system.py │ ├── 02-annotating-llvm-stanford │ ├── completed │ │ ├── base-system.py │ │ └── llvm_stanford │ │ │ ├── Bubblesort.c │ │ │ ├── FloatMM.c │ │ │ ├── IntMM.c │ │ │ ├── Makefile │ │ │ ├── Oscar.c │ │ │ ├── Perm.c │ │ │ ├── Puzzle.c │ │ │ ├── Queens.c │ │ │ ├── Quicksort.c │ │ │ ├── RealMM.c │ │ │ ├── Towers.c │ │ │ └── Treesort.c │ ├── llvm_stanford │ │ ├── Bubblesort.c │ │ ├── FloatMM.c │ │ ├── IntMM.c │ │ ├── Makefile │ │ ├── Oscar.c │ │ ├── Perm.c │ │ ├── Puzzle.c │ │ ├── Queens.c │ │ ├── Quicksort.c │ │ ├── RealMM.c │ │ ├── Towers.c │ │ └── Treesort.c │ ├── optimized │ │ ├── base-system.py │ │ └── llvm_stanford │ │ │ ├── Bubblesort.c │ │ │ ├── FloatMM.c │ │ │ ├── IntMM.c │ │ │ ├── Makefile │ │ │ ├── Oscar.c │ │ │ ├── Perm.c │ │ │ ├── Puzzle.c │ │ │ ├── Queens.c │ │ │ ├── Quicksort.c │ │ │ ├── RealMM.c │ │ │ ├── Towers.c │ │ │ └── Treesort.c │ └── template │ │ └── base-system.py │ ├── 03-checkpoints │ ├── 0A-adding-checkpoints │ │ ├── complete │ │ │ ├── Makefile │ │ │ ├── base-system.py │ │ │ └── mm_checkpoint.cpp │ │ └── template │ │ │ ├── base-system.py │ │ │ └── mm_base.cpp │ ├── 0B-restoring-checkpoints │ │ ├── checkpoint-directory │ │ │ ├── board.physmem.store0.pmem │ │ │ └── m5.cpt │ │ ├── complete │ │ │ ├── base-system-restore-checkpoint.py │ │ │ └── base-system-take-checkpoint.py │ │ ├── mm_checkpoint │ │ │ ├── Makefile │ │ │ └── mm_ckpt.cpp │ │ └── template │ │ │ └── base-system.py │ └── README.md │ └── data-files │ ├── README.md │ ├── annotated │ ├── Makefile │ └── mm_annotated.cpp │ ├── base │ └── mm_base.cpp │ └── checkpointed │ ├── Makefile │ └── mm_checkpoint.cpp ├── modules ├── Developing gem5 models │ └── _posts │ │ ├── 2000-01-01-index.md │ │ ├── 2000-02-01-simobject.md │ │ ├── 2000-03-01-events.md │ │ ├── 2000-04-01-memoryobj.md │ │ ├── 2000-05-01-cache.md │ │ ├── 2000-06-01-execution-model.md │ │ ├── 2000-07-01-instructions.md │ │ ├── 2000-08-01-memory-system.md │ │ ├── 2000-09-01-ruby-intro.md │ │ ├── 2000-09-02-ruby-decl-cache.md │ │ ├── 2000-09-03-ruby-in-port.md │ │ ├── 2000-09-04-ruby-actions-transitions.md │ │ ├── 2000-09-05-ruby-dir.md │ │ ├── 2000-09-06-ruby-build-run.md │ │ ├── 2000-09-07-ruby-debugging.md │ │ ├── 2000-10-01-ruby-network.md │ │ └── 2000-11-01-gpu.md ├── Extra topics │ └── _posts │ │ ├── 2000-01-01-index.md │ │ ├── 2000-02-01-contributing.md │ │ ├── 2000-03-01-other-sims.md │ │ ├── 2000-04-01-checkpointing-commmonitor.md │ │ ├── 2000-05-01-extra-topics.md │ │ ├── cpu-and-caches.md │ │ └── monitor-and-trace.md ├── Introduction │ └── _posts │ │ ├── 2000-01-01-index.md │ │ ├── 2000-02-01-intro.md │ │ ├── 2000-03-01-simulation.md │ │ ├── 2000-04-01-gem5-basics.md │ │ └── 2000-05-01-gem5-devel.md └── Using gem5 │ └── _posts │ ├── 2000-01-01-index.md │ ├── 2000-02-01-stdlib.md │ ├── 2000-03-01-running.md │ ├── 2000-04-01-models-caches.md │ ├── 2000-05-01-models-cpu.md │ ├── 2000-06-01-models-memory.md │ ├── 2000-07-01-stats.md │ ├── 2000-08-01-full-system.md │ └── 2000-09-01-accelerating.md └── requirements.txt /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/gem5-test/gem5-tutorial-env:latest 2 | 3 | RUN apt update -y && apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common 4 | RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - 5 | RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 6 | 7 | RUN apt-get update && apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin 8 | 9 | # "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ 10 | # $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "hostRequirements": { 3 | "cpus": 16, 4 | "memory": "8gb", 5 | "storage": "32gb" 6 | }, 7 | "build": { "dockerfile": "Dockerfile" }, 8 | "onCreateCommand" : "bash ./.devcontainer/on_create.sh", 9 | "runArgs": ["--privileged", "-v", "/var/run/docker.sock:/var/run/docker.sock", "--security-opt", "seccomp=unconfined"], 10 | "extensions": [ 11 | "ms-vscode.cpptools", 12 | "streetsidesoftware.code-spell-checker", 13 | "eamodio.gitlens", 14 | "ms-python.vscode-pylance", 15 | "ms-python.python" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.devcontainer/on_create.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Update the submodules 4 | git submodule update --init --recursive 5 | 6 | # Create the stubs 7 | gem5-arm gem5_stubgen.py 8 | gem5-x86 gem5_stubgen.py 9 | gem5-riscv gem5_stubgen.py 10 | 11 | mv out typings 12 | 13 | # Setups the gem5 source directory 14 | cd gem5 15 | 16 | ## We cleanup git's 'blame' feature by ignoring certain commits (typically 17 | ## commits that have reformatted files) 18 | git config --global blame.ignoreRevsFile .git-blame-ignore-revs 19 | 20 | ## `git pull` should rebase by default 21 | git config --global pull.rebase true 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore all m5out directories and build directories 2 | **/m5out/ 3 | 4 | # Jekyll stuff 5 | _site/ 6 | .sass-cache/ 7 | Gemfile.lock 8 | 9 | typings/ 10 | 11 | # .vscode stuff 12 | .vscode/*.log 13 | 14 | __pycache__ 15 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "gem5"] 2 | path = gem5 3 | url = https://gem5.googlesource.com/public/gem5 4 | [submodule "gem5-resources"] 5 | path = gem5-resources 6 | url = https://gem5.googlesource.com/public/gem5-resources 7 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/markdownlint/markdownlint 3 | rev: e31711c0db57df9b350fbaeaae6de745972f3e66 4 | hooks: 5 | - id: markdownlint 6 | args: ["-i", "-r ~MD013,~MD026"] 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.formatting.provider": "black", 3 | "python.analysis.stubPath": "typings", 4 | "python.analysis.extraPaths": ["gem5/src/python"], 5 | "python.formatting.blackArgs": [ 6 | "--line-length", 7 | "79" 8 | ], 9 | "editor.rulers": [ 10 | 79 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages' 3 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # basic configuration 2 | markdown: kramdown 3 | permalink: /:categories/:title/ 4 | 5 | # Please leave this code here for us to see how Course in a Box get used 6 | p2pu_ga_tracking_code: UA-55722824-1 7 | 8 | # Some files we need to exclude, so Github can build the site 9 | exclude: [Gemfile, Gemfile.lock, README.md] 10 | 11 | kramdown: 12 | parse_block_html: true 13 | math_engine: mathjax 14 | 15 | defaults: 16 | - 17 | scope: 18 | path: "modules" # an empty string here means all files in the project 19 | values: 20 | layout: "course_page" 21 | 22 | prose: 23 | media: /assets/img 24 | ignore: 25 | - /_includes 26 | - /_layouts 27 | - /_sass 28 | - /assets/fonts 29 | - /assets/js 30 | - /assets/css 31 | 32 | exclude: 33 | - /gem5 34 | - /gem5-resources 35 | 36 | # Set some personal styles and logo for your course 37 | # this is a hex value http://www.w3schools.com/tags/ref_colorpicker.asp 38 | jumbotron_color: "#b5b3aa" 39 | jumbotron_image: "img/1280px-Haswell_Chip.jpeg" 40 | -------------------------------------------------------------------------------- /_data/course.yml: -------------------------------------------------------------------------------- 1 | title: "gem5 Bootcamp 2022" 2 | description: "gem5 Bootcamp Summer 2022 at UC Davis offered by the Davis Computer Architecture Research Group" 3 | modules: ["Introduction", "Using gem5", "Developing gem5 models", "Extra topics"] 4 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 20 | 21 | -------------------------------------------------------------------------------- /_includes/ga.html: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /_includes/navigation.html: -------------------------------------------------------------------------------- 1 | 2 | 23 | -------------------------------------------------------------------------------- /_includes/next_in_module.html: -------------------------------------------------------------------------------- 1 | {% assign next=null %} 2 | {% assign prev=null %} 3 | {% assign temp=null %} 4 | 5 | {% for p in site.categories[module] reversed %} 6 | {% if p.url == page.url %} 7 | {% if temp %} 8 | {% assign prev=temp %} 9 | {% endif %} 10 | {% elsif temp.url == page.url %} 11 | {% assign next=p %} 12 | {% endif %} 13 | {% assign temp=p %} 14 | {% endfor %} 15 | -------------------------------------------------------------------------------- /_includes/next_module.html: -------------------------------------------------------------------------------- 1 | {% assign next=null %} 2 | {% assign prev=null %} 3 | {% assign temp=null %} 4 | 5 | {% for m in site.data.course.modules %} 6 | {% if m == module and forloop.first != true %} 7 | {% assign p = forloop.index0 | minus:1 %} 8 | {% assign prev = site.data.course.modules[p] %} 9 | {% assign prev_post = site.categories[prev]|reverse|first %} 10 | {% endif %} 11 | {% if m == module and forloop.last != true %} 12 | {% assign n = forloop.index0 | plus:1 %} 13 | {% assign next = site.data.course.modules[n] %} 14 | {% assign next_post = site.categories[next]|reverse|first %} 15 | {% endif %} 16 | {% endfor %} 17 | 18 | -------------------------------------------------------------------------------- /_includes/page-toc.html: -------------------------------------------------------------------------------- 1 | 2 | {% for post in site.posts %} 3 | {% assign name=post.id | split: '/' | last %} 4 | {% if name != include.name %} 5 | {% continue %} 6 | {% endif %} 7 | {% assign temp = post.content | markdownify %} 8 | {% assign purl = post.url | relative_url %} 9 | {% include toc.html html=temp base_url=purl h_max=3 %} 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /_includes/side_toolbar.html: -------------------------------------------------------------------------------- 1 |
35 | -------------------------------------------------------------------------------- /_layouts/course_page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: base 3 | --- 4 | {% assign module=page.categories[1] %} 5 |General discussion
" %} {% endif %} 25 | {% include next_in_module.html %} 26 | {% if prev or next %}{{site.data.course.description}}
13 | 14 |