Skip to content

Commit 7550708

Browse files
authored
Change RandomNorm from float types to int (#190)
Signed-off-by: Qifan Deng <[email protected]>
1 parent f37ed5b commit 7550708

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

pkg/common/utils.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -346,22 +346,24 @@ func RandomFloat(min float64, max float64) float64 {
346346
return randomGenerator.Float64()*(max-min) + min
347347
}
348348

349-
// Returns a normally distributed float64
349+
// Returns a normally distributed int
350350
// If the generated value differs by more than 70% from mean, the returned
351351
// value will be 70% of mean
352-
func RandomNorm(mean float64, stddev float64) float64 {
352+
func RandomNorm(mean int, stddev int) int {
353353
if stddev == 0 {
354354
return mean
355355
}
356356
randMutex.Lock()
357357
defer randMutex.Unlock()
358-
value := randomGenerator.NormFloat64()*stddev + mean
359-
if value < 0.3*mean {
360-
value = 0.3 * mean
361-
} else if value > 1.7*mean {
362-
value = 1.7 * mean
358+
mean_ := float64(mean)
359+
stddev_ := float64(stddev)
360+
value := randomGenerator.NormFloat64()*stddev_ + mean_
361+
if value < 0.3*mean_ {
362+
value = 0.3 * mean_
363+
} else if value > 1.7*mean_ {
364+
value = 1.7 * mean_
363365
}
364-
return value
366+
return int(value)
365367
}
366368

367369
// GenerateUUIDString generates a UUID string under a lock

pkg/llm-d-inference-sim/simulator.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -701,25 +701,23 @@ func (s *VllmSimulator) getTimeToFirstToken(nPromptTokens int, nCachedPromptToke
701701
if s.config.KVCacheTransferLatency == 0 && s.config.KVCacheTransferLatencyStdDev == 0 {
702702
// is disaggregated PD and ttft is calculated using number of prompt tokens
703703
kvCacheTransT := s.config.KVCacheTransferTimePerToken * nPromptTokens
704-
return int(common.RandomNorm(float64(kvCacheTransT), float64(s.config.KVCacheTransferTimeStdDev)))
704+
return common.RandomNorm(kvCacheTransT, s.config.KVCacheTransferTimeStdDev)
705705
}
706706
// is disaggregated PD and *not* using number of prompt tokens
707-
return int(common.RandomNorm(float64(s.config.KVCacheTransferLatency), float64(s.config.KVCacheTransferLatencyStdDev)))
707+
return common.RandomNorm(s.config.KVCacheTransferLatency, s.config.KVCacheTransferLatencyStdDev)
708708
}
709709
if s.config.TimeToFirstToken == 0 && s.config.TimeToFirstTokenStdDev == 0 {
710710
// is aggregated PD and ttft is calculated using number of prompt tokens that are not in kv cache
711711
prefillTime := s.config.PrefillOverhead + (nPromptTokens-nCachedPromptTokens)*s.config.PrefillTimePerToken
712-
return int(common.RandomNorm(float64(prefillTime), float64(s.config.PrefillTimeStdDev)))
712+
return common.RandomNorm(prefillTime, s.config.PrefillTimeStdDev)
713713
}
714714
// is aggregated PD and *not* using number of prompt tokens
715-
return int(common.RandomNorm(float64(s.config.TimeToFirstToken), float64(s.config.TimeToFirstTokenStdDev)))
715+
return common.RandomNorm(s.config.TimeToFirstToken, s.config.TimeToFirstTokenStdDev)
716716
}
717717

718718
// returns inter token latency
719719
func (s *VllmSimulator) getInterTokenLatency() int {
720-
mean := float64(s.config.InterTokenLatency)
721-
stddev := float64(s.config.InterTokenLatencyStdDev)
722-
return int(common.RandomNorm(mean, stddev))
720+
return common.RandomNorm(s.config.InterTokenLatency, s.config.InterTokenLatencyStdDev)
723721
}
724722

725723
// returns total inter token latency for the given number of tokens

0 commit comments

Comments
 (0)