The SiliconMark™ agent will collect statistics on the performance of your GPU(s) and upload them to SiliconData. This will trigger the production of a PDF report detailing the results and comparison to public performance data.

Pre-requisites

  1. The agent is currently only available for x86_64 Linux systems with NVIDIA GPUs. If you have a use case for other GPU Vendors, Arm, Windows or MacOS versions, please contact us with details.
  2. NVIDIA drivers with CUDA support must be installed. We recommend updating to the latest driver for your GPU, following NVIDIA’s instructions.
  3. Python3.10+ and PyTorch 2.5.1+ must also be installed. Torch can be installed with the command pip3 install --upgrade torch torchvision torchaudio pynvml, though some systems may have Python configurations that make it more complex. PyTorch has installation documentation available.
  4. (Optional) For systems equipped with RTX 5070, RTX 5070 Ti, RTX 5080, or RTX 5090 GPUs, a pre-release PyTorch version may be required. In such cases, use the following command: pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128 --force-reinstall && pip3 install pynvml

Validate pre-requisites

You can validate these requirements are in place by running a couple of commands:

  1. nvidia-smi should run and provide a basic inventory of your GPU hardware
  2. python3 -c 'import torch; print(torch.cuda.is_available())' should output true

How to Use

Step 1: Select GPU Configuration

  • To run a benchmark, you must first create a test job using the SiliconMark API (api/silicon-mark/test-job/create), or using the SiliconData developer site.

Step 2: Download the agent

  • When you create a job, you will recieve an id_token. The developer site also has a download agent link.
  • On the system you want to test, download the agent and run /bin/sh ./agent -api-key to have it execute. You can also add -verbose as an argument to get more detail as it runs, or -quiet if you want no output for use in an automation script or pipeline.

Step 3: Running

  • The agent will take some time to run. The more GPUs in the test system, the longer it will take. You can monitor it to ensure it is active by opening an additional connection and running nvidia-smi dmon and observing the GPU activity. The test will mostly be focused on one GPU at a time, but the final test should exercise all the GPUs in the system.

Step 4: Download Reports

  • After it is complete, you can download the report from the SiliconData developer site or retrieve a url to download it from the SiliconMark API (PUT api/silicon-mark/test-task/pdf-report-url) with “id”:task-id as the payload.

Example using shell to execute:

# Set credentials
SD_EMAIL=<your email address>
SD_PASSWORD=<Your SiliconData password>
# Use current date and time to generate a unique job name
SD_JOBNAME=$(date +%x-%R)
# Log in to get a bearer token:
SD_LOGIN=$(cat <<EOF
{
  "email":"$SD_EMAIL",
  "password":"$SD_PASSWORD"
}
EOF
)
TOKEN=$(curl --location 'https://api.silicondata.com/backend/api/user/login' \
--header 'Content-Type: application/json' \
--data-raw "$SD_LOGIN" | jq -r '.data.id_token')
# Create a new job and get a job token
SD_JOBDATA=$(cat <<EOF
{
  "name": "$SD_JOBNAME",
  "test_plan_name": "QuickMark",
  "description": "Job created by $SD_EMAIL"
}
EOF
)
curl --location 'https://api.silicondata.com/backend/api/silicon-mark/test-job/create' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $TOKEN" \
--data "$SD_JOBDATA" > job.json
JOB_TOKEN=$(jq -r '.data.token' job.json)
JOB_ID=$(jq -r '.data.id' job.json)
# Download and run the agent using the Job Token
wget -O ./agent https://sd-static-storage.s3.us-east-1.amazonaws.com/agent
chmod +x ./agent
./agent -api-key $JOB_TOKEN
echo "Job $JOB_NAME complete, retrieve your report at https://silicondata.com/silicon-mark"

Benefits

  • Quick Results: Delivers actionable insights within minutes.
  • Holistic Evaluation: Supports evaluation of both single and multi-GPU setups.
  • Precision Tracking: Ensures reproducibility and tracks performance over time.

Contact and Support

For additional information or technical support, please contact: