@@ -54,13 +54,21 @@ class WhisperState: NSObject, ObservableObject, AVAudioRecorderDelegate {
5454 messageLog += " Cannot bench without loaded model \n "
5555 return
5656 }
57- messageLog += " Benchmarking current model\n "
58- let result = await whisperContext? . benchFull ( modelName: " <current> " )
57+ messageLog += " Running benchmark for loaded model\n "
58+ let result = await whisperContext? . benchFull ( modelName: " <current> " , nThreads : Int32 ( min ( 4 , cpuCount ( ) ) ) )
5959 if ( result != nil ) { messageLog += result! + " \n " }
6060 }
6161
6262 func bench( models: [ Model ] ) async {
63- messageLog += " Benchmarking models \n "
63+ let nThreads = Int32 ( min ( 4 , cpuCount ( ) ) )
64+
65+ // messageLog += "Running memcpy benchmark\n"
66+ // messageLog += await WhisperContext.benchMemcpy(nThreads: nThreads) + "\n"
67+ //
68+ // messageLog += "Running ggml_mul_mat benchmark with \(nThreads) threads\n"
69+ // messageLog += await WhisperContext.benchGgmlMulMat(nThreads: nThreads) + "\n"
70+
71+ messageLog += " Running benchmark for all downloaded models \n "
6472 messageLog += " | CPU | OS | Config | Model | Th | FA | Enc. | Dec. | Bch5 | PP | Commit | \n "
6573 messageLog += " | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | \n "
6674 for model in models {
@@ -69,7 +77,7 @@ class WhisperState: NSObject, ObservableObject, AVAudioRecorderDelegate {
6977 messageLog += " Cannot bench without loaded model \n "
7078 break
7179 }
72- let result = await whisperContext? . benchFull ( modelName: model. name)
80+ let result = await whisperContext? . benchFull ( modelName: model. name, nThreads : nThreads )
7381 if ( result != nil ) { messageLog += result! + " \n " }
7482 }
7583 messageLog += " Benchmarking completed \n "
@@ -188,3 +196,8 @@ class WhisperState: NSObject, ObservableObject, AVAudioRecorderDelegate {
188196 isRecording = false
189197 }
190198}
199+
200+
201+ fileprivate func cpuCount( ) -> Int {
202+ ProcessInfo . processInfo. processorCount
203+ }
0 commit comments