Algorithm
We present a polynomial time combinatorial algorithm for Equation 1, which is NP-Hard.
Following Zhai et. al. (2018) and Jiang et. al. (2021), our scheduling mechanism invokes a bid
density (ππ) mechanism to push bids for efficient allocations. Let ππ represent the compute
power of π π, which will be determined by benchmarking. Let πΏ be a constant representing the
ability for a service provider to complete a task determined by an algorithm that considers GPU
compute power, CPU compute power, etc. and let π , πππ‘ππ π, and ππππππ£ππππ be defined as: πππ
β π πππ‘ππ π=ββπΆ2 +π£2
π π,ππ β· π=1
ππππ£ππππ β π π πππ = β1/π 2π,π+βΞ¨π,π
β· π=1 π=1 Setting the bidding density for service providers in this manner heavily incentivize providers
that are able to run WebGPU inference on relatively large models such as Llama and SDXL.
The main combinatorial double auction resource allocation algorithm is presented below. As mentioned earlier, this auction mechanism is utilized to determine fair prices for users and service providers. An important qualification is that only users are able to influence the auction by increasing π£π through bidding more token, which increases the bidding density. However, providers themselves are not able to set the price of their own bid. Instead, it is computed within the platform and a fair price is assigned to the provider.
Prices(πtasks, πproviders, π΅providers, π΅tasks):
Users and service providers send their bids to the auctioneer.
Compute a sorted list of bids of tasks and providers
Normalize components of πΏ and normalize π β π(R),πΆ and
π£ to be in the range (0, 1)
πΊ β β¨πππ‘ππ πβ© sorted in non-increasing order π» β β¨ππππππ£ππππβ© sorted in non-increasing order
π=πβ1
Flag Price:
πβ1
π β ππ,π(π)
π β ππ,π(π)
if(πΆ=0)β¨(π£π<ππ):
π += 1
π[π,π]=ππ
π[π,π]=(Pr(providerperunit)π+Pr(taskperunit)π)/2
if Β¬(Pr(provider per unit)π β€ π[π,π] β€ Pr(task per unit)π):
π [π, π] = Pr(provider per unit)π
π£πβπ£πβππ
ππβ0
If all of the requests of a single user are not satisfied
π += 1
GOTO Price
If all of the requests of a single user are satisfied:
Task trade priceπ = βππ=1 ππ,π β ππ β π΄π,π
Device trade priceπ = βππ=1 ππ,π β ππ β π΄π,π
π += 1
GOTO Price
If all user requests are satisfied:
return Task trade price, Device trade price
Last updated