Skip to content

Repository files navigation

TensorFusion Remote/Local vGPU Benchmark Helm Chart

This Helm chart deploys the TensorFusion Remote/Local vGPU Benchmark application, which includes a deployment for running the benchmark tests and a cronjob for automated testing.

Benchmark Results

TorchBenchmark Results (2025-07-06)

To run the TorchBenchmark tests:

cd benchmark
python3 test.py -k "test_${model_name}_eval_cuda" -t ${eval_times}
ModelNativeNGPU ModeLoss(NGPU)LocalLoss(Local)Same AZLoss(Same AZ)Cross AZLoss(Cross AZ)
basic_gnn_edgecnn41.15 s40.95 s-0.49%43.48 s5.66%46.07 s11.96%54.97 s33.58%
BERT_pytorch249.02 s248.84 s-0.07%251.26 s0.90%253.71 s1.88%261.62 s5.06%
basic_gnn_gcn15.05 s15.24 s1.26%19.63 s30.43%29.70 s97.34%64.39 s327.84%
basic_gnn_gin9.47 s9.53 s0.63%9.78 s3.27%12.66 s33.69%21.83 s130.52%
hf_Albert24.73 s24.00 s-2.95%29.19 s18.03%39.19 s58.47%73.00 s195.19%
hf_Bart39.88 s38.68 s-3.01%54.96 s37.81%94.17 s136.13%211.68 s430.79%
hf_Bert24.15 s24.35 s0.83%29.55 s22.36%42.00 s73.91%75.86 s214.12%
llama39.91 s41.20 s3.23%42.90 s7.49%45.80 s14.76%52.55 s31.67%
hf_distil_whisper170.61 s170.87 s0.15%172.16 s0.91%178.75 s4.77%189.45 s11.04%
hf_clip191.60 s191.70 s0.05%194.52 s1.52%197.51 s3.08%208.90 s9.03%
hf_Whisper58.98 s59.18 s0.34%63.50 s7.66%66.66 s13.02%72.63 s23.14%
Average Loss--0.00%-12.37%-40.82%-128.36%

MLPerf Results (2025-07-04)

To run the MLPerf benchmark:

mlcr run-mlperf,inference,_full,_r5.0-dev \
--model=bert-99 \
--implementation=reference \
--framework=pytorch \
--category=edge \
--scenario=SingleStream \
--execution_mode=valid \
--device=cuda \
--quiet --rerun
ModeTimeLoss
Native27.008 s-
Local29.930 s10.82%
Same AZ33.341 s23.45%
Cross AZ41.597 s54.02%

Simulating AZ Latencies

To simulate different AZ (Availability Zone) network conditions, you can use the Linux Traffic Control (tc) tool to inject artificial network latency:

  1. Inject network latency:
# For Same AZ simulation (0.3ms latency)
tc qdisc add dev lo root netem delay 0.3ms
# For Cross AZ simulation (1ms latency)
tc qdisc add dev lo root netem delay 1ms
  1. Verify the latency:
ping target_host
  1. Remove the artificial latency when done:
tc qdisc del dev lo root

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.2.0+
  • PV provisioner support in the underlying infrastructure
  • A GPU node with NVIDIA drivers installed

Installing the Chart

To install the chart with the release name my-release:

helm install my-release ./helm/torchbench

The command deploys the benchmark application on the Kubernetes cluster with default configuration.

Configuration

The following table lists the configurable parameters of the chart and their default values.

ParameterDescriptionDefault
replicaCountNumber of replicas1
image.repositoryImage repositorycrpi-wpzfqfci37r0ad3n.cn-hangzhou.personal.cr.aliyuncs.com/tensorfusionrobin/tensorfusionrobin
image.tagImage taglatest
image.pullPolicyImage pull policyAlways
serviceAccount.createCreate service accounttrue
serviceAccount.nameService account namecronjob-sa
podAnnotationsPod annotationsSee values.yaml
podLabelsPod labelsSee values.yaml
resourcesPod resource requests and limitsSee values.yaml
nodeSelectorNode selectorkubernetes.io/hostname: gpu-2
cronjob.scheduleCronjob schedule0 0 * * *
cronjob.concurrencyPolicyCronjob concurrency policyAllow
cronjob.successfulJobsHistoryLimitNumber of successful jobs to keep3
cronjob.failedJobsHistoryLimitNumber of failed jobs to keep1

Usage

Running the Benchmark

The benchmark will run automatically according to the cronjob schedule. You can also manually trigger a benchmark run by:

  1. Finding the cronjob:
kubectl get cronjob
  1. Creating a job from the cronjob:
kubectl create job --from=cronjob/my-release-torchbench-test-runner manual-run

Viewing Results

To view the benchmark results:

kubectl logs -l app=my-release-torchbench

Customizing the Configuration

To customize the configuration, create a custom values file:

helm install my-release ./helm/torchbench -f custom-values.yaml

Uninstalling the Chart

To uninstall/delete the deployment:

helm uninstall my-release

Troubleshooting

If you encounter any issues:

  1. Check the pod status:
kubectl get pods -l app=my-release-torchbench
  1. Check the pod logs:
kubectl logs -l app=my-release-torchbench
  1. Check the cronjob status:
kubectl get cronjob
kubectl get jobs
  1. Check the service account:
kubectl get serviceaccount

About

TensorFusion Remote/Local vGPU Benchmark

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors