Skip to content

Commit 6a2e717

Browse files
authored
(feat): aep-67: Bid PreCheck (#43)
1 parent 0c889c3 commit 6a2e717

File tree

5 files changed

+71
-1
lines changed

5 files changed

+71
-1
lines changed

INDEX.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@
6464
| [62](spec/aep-62) | Provider Console - Node Manager | Final | Standard/Interface | 2024-03-15 | 2025-04-17 | |
6565
| [63](spec/aep-63) | Console API for Managed Wallet Users - v1 | Draft | Standard/Interface | 2024-03-14 | | 2025-05-30 |
6666
| [64](spec/aep-64) | JWT Authentication for Provider API | Final | Standard/Core | 2025-04-03 | | 2025-04-30 |
67-
| [65](spec/aep-65) | Confidential Computing | Draft | Standard/Core | 2025-05-14 | | 2025-12-31 |
67+
| [65](spec/aep-65) | Confidential Computing | Draft | Standard/Core | 2025-05-14 | | 2025-12-31 |
68+
| [67](spec/aep-67) | Console Bid PreCheck | Draft | Standard/Core | 2025-05-16 | | 2025-06-15 |

ROADMAP.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
| [63](spec/aep-63) | Console API for Managed Wallet Users - v1 | 2025-05-30 | Major |
2828
| [29](spec/aep-29) | Hardware Verification (Via Attestation) | 2025-06-15 | Major |
2929
| [33](spec/aep-33) | Escrow Balance Alerts in Akash Console | 2025-06-15 | Major |
30+
| [67](spec/aep-67) | Console Bid PreCheck | 2025-06-15 | Major |
3031
| [12](spec/aep-12) | Trusted Execution Environment (TEE) | 2025-06-30 | Major |
3132
| [55](spec/aep-55) | Buy Back and Burn AKT | 2025-06-30 | Minor |
3233
| [56](spec/aep-56) | Chain SDK | 2025-06-30 | Major |

index.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,18 @@
754754
"estimated-completion": "2025-12-31T00:00:00.000Z",
755755
"roadmap": "major"
756756
},
757+
{
758+
"aep": 67,
759+
"title": "Console Bid PreCheck",
760+
"author": "Anil Murty (@anilmurty)",
761+
"status": "Draft",
762+
"type": "Standard",
763+
"category": "Core",
764+
"created": "2025-05-16T00:00:00.000Z",
765+
"updated": "2025-05-16T00:00:00.000Z",
766+
"estimated-completion": "2025-06-15T00:00:00.000Z",
767+
"roadmap": "major"
768+
},
757769
{
758770
"aep": 7,
759771
"title": "Incentivized Testnet 1: Akashian Challenge Phase 1",

spec/aep-67/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
aep: 67
3+
title: "Console Bid PreCheck"
4+
author: Anil Murty (@anilmurty)
5+
status: Draft
6+
type: Standard
7+
category: Core
8+
created: 2025-05-16
9+
updated: 2025-05-16
10+
estimated-completion: 2025-06-15
11+
roadmap: major
12+
---
13+
14+
## Motivation
15+
16+
Users often see plenty of available GPUs on the pricing page but fail to receive any bids for their deployment. This causes users to think that the service is broken and likely give up on investigating further. Providing users guidance on why this is may be happening will go a long way in improving adoption.
17+
18+
## Background
19+
There are situations where Console users hit the GPU pricing page (on the website) or the providers page (in console), see that there are enough "available" GPUs of the desired model, proceed to deploy via console, only to NOT get ANY bids for their deployment. This can happen due to the following primary reasons:
20+
21+
- While there may be enough "available" GPUs in aggregate (across multiple providers), there may not be enough GPUs on a single provider
22+
- While there may be enough GPUs on a single provider, there aren't enough (to fulfill the gpu count in the user SDL) on a single node of the provider. This can happen if past small requests (1-2 GPUs per deployment) happened to get scheduled across different nodes of the provider, leaving the provider "fragmented" in terms of available GPUs.
23+
- While there may be enough GPUs on a single node to satisfy the gpu count, the specific node may not have enough other (non-GPU) resources available to satisfy all the resource requirements outlined in the compute profile. We have sometimes seen this happen when a provider's CPU count gets maxed out (90%) with work loads while they have little usage of GPUs.
24+
25+
Users need some guidance on whether their SDL needs to be "adjusted" before they proceed with "create deployment" and if so, provide specific guidance on what needs to be changed in order to increase likelihood of bid being received
26+
27+
## Proposed Solution
28+
29+
One possible way to address this is to implement what we call a "Bid PreCheck" feature. The Pre-check feature should ideally check if the resources and pricing being requested by the user in the SDL will result in any bids or not, without them actually creating an on-chain transaction.
30+
31+
### Implementation
32+
33+
Ideally if should be a service on the providers that can be queried with resources as input and returns whether the provider will bid or not -- but this doesn't exist today. In the absence of that we will need to make use of inventory APIs
34+
35+
The way this would work is, when the user clicks on deploy and lands on either the SDL builder or the YAML editor page we would:
36+
37+
1. Parse the SDL to extract out the GPU Count, GPU filter (present or not), CPU count, memory size, storage size and pricing limit (uakt)
38+
2. Query the providers on the network to determine
39+
- Are there providers with those specific GPUs. If there are none then return 0 for "expected bids" and recommend to the user that they "remove the GPU filter"
40+
- If there are providers with those GPUs then check if they have the requested count on a single node. If there are none, then return 0 and recommend to the user that they "reduce the number of GPUs requested"
41+
- If there are enough GPUs on a node but not enough CPUs (to meet the requested CPU count) then return 0 and recommend to the user that they "reduce the CPU count")
42+
- If there are enough GPUs and CPUs on a single node but not enough memory or storage, then return 0 and recommend reducing those.
43+
- If there is a non zero value of providers/ nodes with requested resources then indicate that non-zero number and recommend the full list of things the user can do to increase that number
44+
45+
Also we should limit this function only to deployments created by users who are not trial users because trial users in general have limited providers that are likely to be fully used
46+
47+
1. For the YAML editor page, we split the frame into 2 halves. Display the YAML editor in the left half and in the right half, display the results of the pre-check
48+
49+
2. For the SDL builder page, we do essentially the same as 1 above except we would first
50+
- Need to move the form fields that exist today on the right half of the page to be in a single column
51+
- Left justify that whole column
52+
53+
54+
This is a rough/ initial/ tentative design that will likely be changed/ improved when we implement the feature
55+
56+
![Bid-Precheck](bid-precheck-screen.png)
393 KB
Loading

0 commit comments

Comments
 (0)