Unified at|docker_shell script#4010
Unified at|docker_shell script#4010luarss wants to merge 3 commits intoThe-OpenROAD-Project:masterfrom
at|docker_shell script#4010Conversation
… AutoTuner and ORFS workflows. Signed-off-by: Jack Luar <jluar@precisioninno.com>
|
@jeffng-or FYI |
|
Doesn't quite seem to work correctly:
|
…n error Signed-off-by: Jack Luar <jluar@precisioninno.com>
|
Hi Jeff, thanks for raising the bugs. I got it running from the # Issue 1: make DESIGN_CONFIG=...
# Run this from ./flow
./util/docker_shell --image openroad/orfs-autotuner:local make DESIGN_CONFIG=designs/asap7/gcd/config.mk metadata
# Issue 2: interactive bash
./util/docker_shell --image openroad/orfs-autotuner:local bash
# Issue 3: openroad_autotuner
./util/docker_shell --image openroad/orfs-autotuner:local openroad_autotuner --help |
|
I think I see the issue. In my environment (and what I'm going to suggest to customers) the initial starting directory in the container should be /OpenROAD-flow-scripts/flow, but the current directory gets mounted as /work. So, we should always be cd'ing into /OptnROAD-flow-scripts/flow. I can then:
Let me know if you have any questions. |
…=/work Signed-off-by: Jack Luar <jluar@precisioninno.com>
|
@jeffng-or Made some changes and tested with the following - does it work for your use-case? # 1. Interactive bash — should land in /OpenROAD-flow-scripts/flow
./flow/util/docker_shell bash
# 2. make with DESIGN_CONFIG from /work
./flow/util/docker_shell make DESIGN_CONFIG=/work/flow/designs/nangate45/gcd/config.mk
# 3. autotuner referencing a yaml in /work
./flow/util/docker_shell --image openroad/orfs-autotuner:6422fcc-orfs-26Q1-325-g333fee363-ray-2.51.2-full openroad_autotuner -s /work/flow/designs/asap7/gcd/asap7_gcd_sweep.yaml |
|
Nope, it looks like it's cd'ing into MOUNT_TARGET "/work", which doesn't work for case #2 and case #1, sort of. For case 1, I would have expected to cd to ORFS flow, since that's what docker_shell does today. For case 2, it's semi-related, since we cd to MOUNT_TARGET and we can't find the makefile. Just for clarity, here's my set up:
Case 1: ./docker_shell.jack --image openroad/orfs-autotuner:26Q1-636-gb9f42fead bash Case 2: ./docker_shell.jack --image openroad/orfs-autotuner:26Q1-636-gb9f42fead make DESIGN_CONFIG=designs/asap7/gcd/config.mk |
|
@jeffng-or Sure. Let us debug case-by-case. First, I tried to copy your setup locally - let me know if that mirrors yours. Also - please let me know what you see after running |
|
I think I see one difference. For the bash case, I was running with a docker shell that was built from the AutoTuner Dockerfile. I have a script that runs the build: https://drive.google.com/file/d/1C6NIYKvyKV8WsdPcp7Ktym-_oNAPKhMB/view?usp=drive_link With an AutoTuner workspace in the current directory, run: ./build_autotuner_image.sh --release_tag openroad/orfs:26Q1-636-gb9f42fead |
|
Gotcha, this is my setup now: AT image builds successfully: Interactive docker_shell works: |
|
OK. just updated again to make sure that I have the latest and it works for all three cases. Sorry for the hassle. Let's move forward on this and the other open PRs. Then, I can work on rolling it out product-wise. Thanks! |
Fixes https://github.com/The-OpenROAD-Project-private/AutoTuner/issues/126
Diffs
at_shell/docker_shellscripts with a singleetc/docker_shellsupporting--image,--user,--orfs-flow,--port,--dry-run, and--helpflags.Mapping pwd to /OpenROAD-flow-scripts/flow (read-only)
etc/docker_shelldefaults to mountingpwdat/work, which is writable.To use the AT flow:
For the Rapidus/ORFS use case where pwd should overlay
/OpenROAD-flow-scripts/flow, pass--orfs-flow:etc/docker_shell --orfs-flow -- openroad -version 2>&1)Sourcing of ../env.sh
env.shis sourced automatically only in--orfs-flowmode, where/OpenROAD-flow-scripts/flowis the working directory and OR tools need to be added toPATH.Image selection priority
--image IMAGEflag$OR_IMAGEenvironment variableopenroad/orfs:latest(built-in default)@jeffng-or FYI