GPU allocation
The GPU allocation screen lets you see the GPU time, energy and cost of the local model deployments over a
period, how this cost is shared between tenants, and the allocation policies that price it. Portal path:
/finops/gpu (menu FinOps > GPU allocation). Platform administrators define the policies; FinOps
analysts and tenant administrators read the allocation.
What the screen shows
| Area | Content |
|---|---|
| From and To | Period of the allocation, by default the last 30 days until today. |
| Allocation section, deployments table | One row per deployment: Deployment id, Samples, GPUs, GPU hours, Busy GPU hours (hours weighted by utilization), Energy (kWh), Cost, Allocated, Unallocated, Unpriced samples (samples no allocation policy prices). |
| Allocation section, tenants table | Shown when tenants consumed: Tenant id, GPU seconds, Share, Cost. The cost of a deployment is shared in proportion to the GPU seconds measured on the usage events of each tenant. |
| Allocation policies table | Name, Deployment pattern, GPU model, GPU hourly cost, Overhead %, PUE, Enabled. |
| Empty states | No GPU usage (GPU samples are sent by vLLM deployments); No allocation policy. |
A platform administrator signed in without a tenant sees every tenant; the other callers see their own tenant.
Actions
| Button or action | What it does | API call | Roles |
|---|---|---|---|
| From / To | Reloads the allocation for the period. | GET /v1/finops/gpu/allocation (from, to) | Readers of the FinOps section |
| Retry (error panel) | Sends the allocation request again. | GET /v1/finops/gpu/allocation | Readers of the FinOps section |
| New allocation policy | Opens the form: Name (required), Deployment pattern (default *), GPU model (for example L40S), Currency (default USD), GPU hourly cost (required, for example 2.10), Overhead % (default 0), PUE (for example 1.4), Energy price per kWh (for example 0.18), Enabled. Create sends it. | POST /v1/finops/allocation-policies | platform_admin |
| Refresh (round arrow icon) | Reloads the policies. | GET /v1/finops/allocation-policies | Readers of the FinOps section |
The GPU samples themselves are posted by the deployments with POST /v1/finops/gpu/samples (platform_admin).
Roles
| Role | Access |
|---|---|
platform_admin | Reads the allocation of every tenant and creates the allocation policies (ROLES.allocationAdmins of portal/src/lib/kit.ts). |
finops, tenant_admin, auditor | Read the allocation of their tenant and the policies; New allocation policy is hidden. |
developer, viewer, security_officer | Allowed to read by the API, but the FinOps section of the portal menu does not open for them. |
Typical tasks
Price the GPUs of a local deployment
- Open the form. Without a policy, the samples stay unpriced. Click New allocation policy.
Expected result: the form opens on the right.
If it fails: the button is shown to
platform_adminonly. - Fill the policy. Enter a Name, a Deployment pattern that matches the deployment ids (
*for all), the GPU model, the GPU hourly cost, and the PUE and Energy price per kWh to add the energy cost. Expected result: the fields are filled. If it fails: PUE must be 1 or more. - Create it. Click Create.
Expected result: the policy is listed, and the samples of the matching deployments taken while the policy is in
effect are priced: Unpriced samples falls for those periods.
If it fails:
forbiddenmeans you are not a platform administrator.
Check the GPU cost charged to each tenant
- Choose the period. Set From and To to the month to check. Expected result: the deployments table shows the cost of the month. If it fails: No GPU usage means no sample was received in the period.
- Read the tenants table. Compare Share and Cost per tenant, and Unallocated per deployment: the
unallocated cost is GPU time no tenant usage event accounts for.
Expected result: Allocated plus Unallocated equals Cost for each deployment.
If it fails: check that the usage events of the tenants carry
deployment_idandgpu_secondsin Usage events.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No GPU usage | No GPU sample in the period. | Check that the vLLM deployments post their samples to POST /v1/finops/gpu/samples with a platform administrator identity. |
| Unpriced samples above zero | No enabled allocation policy matches the deployment. | Create a policy whose Deployment pattern matches it. |
Error tenant_required (HTTP 403) | A caller without a tenant who is not a platform administrator. | Sign in to a tenant. |
Error forbidden (HTTP 403) when creating a policy | Policies are created by platform_admin only. | Ask a platform administrator. |
Error validation_error (HTTP 422) | A negative cost, a PUE below 1, or a currency that is not three capital letters. | Fix the field. |