diff --git a/.github/workflows/adhoc.yml b/.github/workflows/adhoc.yml index a6885fa..f5eff43 100644 --- a/.github/workflows/adhoc.yml +++ b/.github/workflows/adhoc.yml @@ -13,6 +13,11 @@ on: - g6.8xlarge - g6.4xlarge - g6.2xlarge + enable_gpu: + description: 'Enable GPU usage' + required: true + type: boolean + default: true ami_id: description: 'AMI ID' required: true @@ -56,16 +61,6 @@ on: required: true default: '22' type: string - block_1: - description: 'Block number for reth1' - required: true - default: '17106222' - type: string - block_2: - description: 'Block number for reth2' - required: true - default: '19409768' - type: string pull_request: branches: [main] @@ -80,11 +75,6 @@ jobs: ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} steps: - # Use an access key for an IAM user with these permissions: - # - ec2:RunInstances - # - ec2:TerminateInstances - # - ec2:DescribeInstances - # - ec2:DescribeInstanceStatus - name: Configure AWS credentials uses: "aws-actions/configure-aws-credentials@v1" with: @@ -97,18 +87,10 @@ jobs: uses: "xJonathanLEI/ec2-github-runner@main" with: mode: "start" - # Must use personal access token here as `GITHUB_TOKEN` does not have access to runners. - # Use a fine-grained token with these permissions to at least this repository: - # - Administration: Read and write - # - Contents: Read and write - # - Metadata: Read-only - # - Workflows: Read and write github-token: "${{ secrets.GH_PAT }}" ec2-image-id: "${{ inputs.ami_id || 'ami-079a6a210557ef0e4' }}" ec2-instance-type: "${{ inputs.instance_type || 'g6.4xlarge' }}" - # Use a subnet in the default VPC subnet-id: "${{ secrets.AWS_SUBNET_ID }}" - # Use a security group attached to the default VPC security-group-id: "${{ secrets.AWS_SG_ID }}" storage-size: 1024 @@ -123,9 +105,6 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 - # - name: Setup Self-Hosted Runner - # uses: ./.github/actions/self-hosted - - name: rust-cache uses: actions/cache@v3 with: @@ -138,51 +117,21 @@ jobs: ~/.rustup/ key: rust-1.79.0-${{ hashFiles('**/Cargo.toml') }} restore-keys: rust-1.79.0- - - # Commented out because the latency of the docker buildx cache is high enough - # with the EC2 builder that it's a wash. Can be added back in if the toolchain gets complex. - # - name: Set up Docker Buildx - # uses: docker/setup-buildx-action@v3 - - # - name: Cache Docker layers - # uses: actions/cache@v3 - # with: - # path: /tmp/.buildx-cache - # key: ${{ runner.os }}-buildx-${{ github.sha }} - # restore-keys: | - # ${{ runner.os }}-buildx- - - # - name: Build and cache Docker image - # uses: docker/build-push-action@v5 - # with: - # context: . - # file: ./Dockerfile.toolchain - # push: false - # load: true - # tags: moongate-toolchain:latest - # cache-from: type=local,src=/tmp/.buildx-cache - # cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max - - # This step is necessary to prevent the cache from growing indefinitely - # - name: Move cache - # run: | - # rm -rf /tmp/.buildx-cache - # mv /tmp/.buildx-cache-new /tmp/.buildx-cache - name: Run docker build run: | docker build -t zkvm-perf --platform linux/amd64 -f Dockerfile.gpu . - # we need to run cargo test --release in the docker container + - name: Run Tests (docker) run: | - docker run --gpus all --platform linux/amd64 \ + docker run ${{ inputs.enable_gpu && '--gpus all' || '' }} --platform linux/amd64 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ./benchmarks:/usr/src/app/benchmarks \ -e RUST_BACKTRACE=full \ --network host \ zkvm-perf \ - "python3 sweep.py --filename ${{ inputs.filename || 'benchmark' }} --trials ${{ inputs.trials || '1' }} --programs ${{ inputs.programs || 'loop' }} --provers ${{ inputs.provers || 'sp1' }} --hashfns ${{ inputs.hashfns || 'poseidon' }} --shard-sizes ${{ inputs.shard_sizes || '22' }} --block-1 ${{ inputs.block_1 || '17106222' }} --block-2 ${{ inputs.block_2 || '19409768' }}" - # cat the results from benchmarks/*.csv and print to console + "python3 sweep.py --filename ${{ inputs.filename || 'benchmark' }} --trials ${{ inputs.trials || '1' }} --programs ${{ inputs.programs || 'loop' }} --provers ${{ inputs.provers || 'sp1' }} --hashfns ${{ inputs.hashfns || 'poseidon' }} --shard-sizes ${{ inputs.shard_sizes || '22' }}" + - name: Print Results run: | cat benchmarks/*.csv @@ -209,4 +158,4 @@ jobs: mode: "stop" github-token: ${{ secrets.GH_PAT }} label: "${{ needs.start-runner.outputs.label }}" - ec2-instance-id: "${{ needs.start-runner.outputs.ec2-instance-id }}" + ec2-instance-id: "${{ needs.start-runner.outputs.ec2-instance-id }}" \ No newline at end of file