Merge pull request #1577 from firesim/fix-stream-width-adapt

Fix stream width adapt
This commit is contained in:
Sagar Karandikar 2023-07-02 19:17:03 -07:00 committed by GitHub
commit 491c573019
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 21 deletions

View File

@ -214,7 +214,7 @@ cd "$RDIR"
# commands to run only on EC2 # commands to run only on EC2
# see if the instance info page exists. if not, we are not on ec2. # see if the instance info page exists. if not, we are not on ec2.
# this is one of the few methods that works without sudo # this is one of the few methods that works without sudo
if wget -T 1 -t 3 -O /dev/null http://169.254.169.254/; then if wget -T 1 -t 3 -O /dev/null http://169.254.169.254/latest/; then
( (
# ensure that we're using the system toolchain to build the kernel modules # ensure that we're using the system toolchain to build the kernel modules

View File

@ -11,12 +11,12 @@
# DOCREF START: Example HWDB Entry # DOCREF START: Example HWDB Entry
firesim_boom_singlecore_nic_l2_llc4mb_ddr3: firesim_boom_singlecore_nic_l2_llc4mb_ddr3:
agfi: agfi-0aac270576e64693c agfi: agfi-0a077a32e234bbaa6
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
# DOCREF END: Example HWDB Entry # DOCREF END: Example HWDB Entry
firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3: firesim_boom_singlecore_no_nic_l2_llc4mb_ddr3:
agfi: agfi-02f92e7c011ef6e19 agfi: agfi-08a82e8d88436c513
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
firesim_gemmini_printf_rocket_singlecore_no_nic: firesim_gemmini_printf_rocket_singlecore_no_nic:
@ -28,11 +28,11 @@ firesim_gemmini_rocket_singlecore_no_nic:
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
firesim_rocket_quadcore_nic_l2_llc4mb_ddr3: firesim_rocket_quadcore_nic_l2_llc4mb_ddr3:
agfi: agfi-0455e4c2892076c1a agfi: agfi-0d27fb39f87c61095
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3: firesim_rocket_quadcore_no_nic_l2_llc4mb_ddr3:
agfi: agfi-09eeb63f4fae0929e agfi: agfi-0a576f54d5c788131
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
firesim_rocket_singlecore_no_nic_l2_lbp: firesim_rocket_singlecore_no_nic_l2_lbp:
@ -52,7 +52,7 @@ firesim_rocket_singlecore_sha3_no_nic_l2_llc4mb_ddr3_printf:
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
firesim_supernode_rocket_singlecore_nic_l2_lbp: firesim_supernode_rocket_singlecore_nic_l2_lbp:
agfi: agfi-0d215a3250e0afabb agfi: agfi-0aac70f36ef51a4a9
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
vitis_firesim_rocket_singlecore_no_nic: vitis_firesim_rocket_singlecore_no_nic:
@ -65,24 +65,20 @@ vitis_firesim_gemmini_rocket_singlecore_no_nic:
custom_runtime_config: null custom_runtime_config: null
# DOCREF START: Xilinx Alveo HWDB Entries # DOCREF START: Xilinx Alveo HWDB Entries
alveo_u250_firesim_rocket_singlecore_no_nic: alveo_u250_firesim_rocket_singlecore_no_nic:
bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/d7eacf838e04fd3ec320ccc126491092f1c0e09c/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_no_nic.tar.gz bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/c41e43a1b30b88434330476195481da0d58695a8/xilinx_alveo_u250/alveo_u250_firesim_rocket_singlecore_no_nic.tar.gz
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
alveo_u280_firesim_rocket_singlecore_no_nic: alveo_u280_firesim_rocket_singlecore_no_nic:
bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/038e1223eff0c9681a602bccb661bcecc7ca3640/xilinx_alveo_u280/alveo_u280_firesim_rocket_singlecore_no_nic.tar.gz bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/58912148918d390210661c1cfa6ae7e774199f6a/xilinx_alveo_u280/alveo_u280_firesim_rocket_singlecore_no_nic.tar.gz
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
# DOCREF END: Xilinx Alveo HWDB Entries # DOCREF END: Xilinx Alveo HWDB Entries
xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic: xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic:
bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/2143daca842608f730f67a9562a8452c0fd22c54/xilinx_vcu118/xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic.tar.gz bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/b448a21ee269d116515b893d4e945edb5c349928/xilinx_vcu118/xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic.tar.gz
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null
nitefury_firesim_rocket_singlecore_no_nic: nitefury_firesim_rocket_singlecore_no_nic:
bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/90454641f381cf30969fd0bc1f32d3a89b2f3802/rhsresearch_nitefury_ii/nitefury_firesim_rocket_singlecore_no_nic.tar.gz bitstream_tar: https://raw.githubusercontent.com/firesim/firesim-public-bitstreams/2db0f64a7670cdc2c7d528e2170cd1bf111208c6/rhsresearch_nitefury_ii/nitefury_firesim_rocket_singlecore_no_nic.tar.gz
deploy_quintuplet_override: null deploy_quintuplet_override: null
custom_runtime_config: null custom_runtime_config: null

View File

@ -8,6 +8,7 @@ CONDA_INSTALLER_VERSION=23.1.0-1
CONDA_INSTALLER="https://github.com/conda-forge/miniforge/releases/download/${CONDA_INSTALLER_VERSION}/Miniforge3-${CONDA_INSTALLER_VERSION}-Linux-x86_64.sh" CONDA_INSTALLER="https://github.com/conda-forge/miniforge/releases/download/${CONDA_INSTALLER_VERSION}/Miniforge3-${CONDA_INSTALLER_VERSION}-Linux-x86_64.sh"
CONDA_CMD="conda" # some installers install mamba or micromamba CONDA_CMD="conda" # some installers install mamba or micromamba
CONDA_ENV_NAME="firesim" CONDA_ENV_NAME="firesim"
CONDA_SHELL_TYPE=bash
DRY_RUN_OPTION="" DRY_RUN_OPTION=""
DRY_RUN_ECHO=() DRY_RUN_ECHO=()
@ -19,24 +20,25 @@ usage()
echo echo
echo "Options:" echo "Options:"
echo "[--help] List this help" echo "[--help] List this help"
echo "[--prefix <prefix>] Install prefix for conda. Defaults to /opt/conda." echo "[--prefix <prefix>] Install prefix for conda. Defaults to $CONDA_INSTALL_PREFIX."
echo " If <prefix>/bin/conda already exists, it will be used and install is skipped." echo " If <prefix>/bin/conda already exists, it will be used and install is skipped."
echo "[--env <name>] Name of environment to create for conda. Defaults to 'firesim'." echo "[--env <name>] Name of environment to create for conda. Defaults to '$CONDA_ENV_NAME'."
echo "[--dry-run] Pass-through to all conda commands and only print other commands." echo "[--dry-run] Pass-through to all conda commands and only print other commands."
echo " NOTE: --dry-run will still install conda to --prefix" echo " NOTE: --dry-run will still install conda to --prefix"
echo "[--reinstall-conda] Repairs a broken base environment by reinstalling." echo "[--reinstall-conda] Repairs a broken base environment by reinstalling."
echo " NOTE: will only reinstall conda and exit without modifying the --env" echo " NOTE: will only reinstall conda and exit without modifying the --env"
echo "[--shell] Run initialization for a specific shell. Defaults to $CONDA_SHELL_TYPE."
echo echo
echo "Examples:" echo "Examples:"
echo " % $0" echo " % $0"
echo " Install into default system-wide prefix (using sudo if needed) and add install to system-wide /etc/profile.d" echo " Install into default system-wide prefix (using sudo if needed) and add install to system-wide /etc/profile.d"
echo " % $0 --prefix ~/conda --env my_custom_env" echo " % $0 --prefix ~/conda --env my_custom_env"
echo " Install into $HOME/conda and add install to ~/.bashrc" echo " Install into $HOME/conda and add install to $CONDA_SHELL_TYPE init files (i.e. ~/.*rc)"
echo " % $0 --prefix \${CONDA_EXE%/bin/conda} --env my_custom_env" echo " % $0 --prefix \${CONDA_EXE%/bin/conda} --env my_custom_env"
echo " Create my_custom_env in existing conda install" echo " Create my_custom_env in existing conda install"
echo " NOTES:" echo " NOTES:"
echo " * CONDA_EXE is set in your environment when you activate a conda env" echo " * CONDA_EXE is set in your environment when you activate a conda env"
echo " * my_custom_env will not be activated by default at login see /etc/profile.d/conda.sh & ~/.bashrc" echo " * my_custom_env will not be activated by default at login see /etc/profile.d/conda.sh & $CONDA_SHELL_TYPE init files (i.e. ~/.*rc)"
} }
@ -69,6 +71,11 @@ while [ $# -gt 0 ]; do
shift shift
REINSTALL_CONDA=1 REINSTALL_CONDA=1
;; ;;
--shell)
shift
CONDA_SHELL_TYPE="$1"
shift
;;
*) *)
echo "Invalid Argument: $1" echo "Invalid Argument: $1"
usage usage
@ -122,6 +129,8 @@ set -o pipefail
;; ;;
amzn) amzn)
;; ;;
debian)
;;
*) *)
echo "::ERROR:: Unknown OS flavor '$OS_FLAVOR'. Unable to do platform-specific setup." echo "::ERROR:: Unknown OS flavor '$OS_FLAVOR'. Unable to do platform-specific setup."
exit 1 exit 1
@ -198,7 +207,7 @@ set -o pipefail
# run conda-init and look at it's output to insert 'conda activate $CONDA_ENV_NAME' into the # run conda-init and look at it's output to insert 'conda activate $CONDA_ENV_NAME' into the
# block that conda-init will update if ever conda is installed to a different prefix and # block that conda-init will update if ever conda is installed to a different prefix and
# this is rerun. # this is rerun.
$SUDO "${CONDA_EXE}" init $DRY_RUN_OPTION "${conda_init_extra_args[@]}" bash 2>&1 | \ $SUDO "${CONDA_EXE}" init $DRY_RUN_OPTION "${conda_init_extra_args[@]}" $CONDA_SHELL_TYPE 2>&1 | \
tee >(grep '^modified' | grep -v "$CONDA_INSTALL_PREFIX" | awk '{print $NF}' | \ tee >(grep '^modified' | grep -v "$CONDA_INSTALL_PREFIX" | awk '{print $NF}' | \
"${DRY_RUN_ECHO[@]}" $SUDO xargs -r sed -i -e "/<<< conda initialize <<</iconda activate $CONDA_ENV_NAME") "${DRY_RUN_ECHO[@]}" $SUDO xargs -r sed -i -e "/<<< conda initialize <<</iconda activate $CONDA_ENV_NAME")
@ -309,6 +318,8 @@ set -o pipefail
sudo ./AmazonLinux2-user-data.sh sudo ./AmazonLinux2-user-data.sh
echo "firesim" | sudo passwd ec2-user --stdin # default password is 'firesim' echo "firesim" | sudo passwd ec2-user --stdin # default password is 'firesim'
;; ;;
debian)
;;
*) *)
echo "::ERROR:: Unknown OS flavor '$OS_FLAVOR'. Unable to do platform-specific setup." echo "::ERROR:: Unknown OS flavor '$OS_FLAVOR'. Unable to do platform-specific setup."
exit 1 exit 1

View File

@ -54,7 +54,7 @@ class StreamWidthAdapter(narrowW: Int, wideW: Int) extends Module {
io.wide.out.bits := Cat(io.narrow.in.bits, narrow_data.asUInt) io.wide.out.bits := Cat(io.narrow.in.bits, narrow_data.asUInt)
io.narrow.out.valid := io.wide.in.valid io.narrow.out.valid := io.wide.in.valid
io.narrow.out.bits := io.wide.in.bits >> (wide_beats << 3) io.narrow.out.bits := io.wide.in.bits.asTypeOf(Vec(beats, UInt(narrowW.W)))(wide_beats)
when (io.narrow.out.fire()) { when (io.narrow.out.fire()) {
wide_beats := Mux(wide_last_beat, 0.U, wide_beats + 1.U) wide_beats := Mux(wide_last_beat, 0.U, wide_beats + 1.U)
} }

@ -1 +1 @@
Subproject commit 22b43ca3dbe1ab39c90689f81c98b8d9a0260c89 Subproject commit 9cfeec034ab36def11ac23fb3315605f93272e2b