Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
text-generation-inference
Commits
9cca3e0b
Unverified
Commit
9cca3e0b
authored
Sep 13, 2024
by
Alex Strick van Linschoten
Committed by
GitHub
Sep 13, 2024
Browse files
Use `ratatui` not (deprecated) `tui` (#2521)
* use ratatui not archived tui * bump ratatui all the way with options
parent
3ac7df2b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
48 deletions
+100
-48
Cargo.lock
Cargo.lock
+86
-33
benchmark/Cargo.toml
benchmark/Cargo.toml
+2
-2
benchmark/src/app.rs
benchmark/src/app.rs
+10
-11
benchmark/src/lib.rs
benchmark/src/lib.rs
+2
-2
No files found.
Cargo.lock
View file @
9cca3e0b
...
@@ -52,6 +52,12 @@ version = "0.5.0"
...
@@ -52,6 +52,12 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
[[package]]
name = "allocator-api2"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
[[package]]
[[package]]
name = "anstream"
name = "anstream"
version = "0.6.15"
version = "0.6.15"
...
@@ -588,6 +594,15 @@ version = "0.3.0"
...
@@ -588,6 +594,15 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "castaway"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5"
dependencies = [
"rustversion",
]
[[package]]
[[package]]
name = "cc"
name = "cc"
version = "1.1.15"
version = "1.1.15"
...
@@ -729,6 +744,20 @@ version = "1.0.2"
...
@@ -729,6 +744,20 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
[[package]]
name = "compact_str"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6050c3a16ddab2e412160b31f2c871015704239bca62f72f6e5f0be631d3f644"
dependencies = [
"castaway",
"cfg-if",
"itoa",
"rustversion",
"ryu",
"static_assertions",
]
[[package]]
[[package]]
name = "console"
name = "console"
version = "0.15.8"
version = "0.15.8"
...
@@ -848,15 +877,15 @@ checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
...
@@ -848,15 +877,15 @@ checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
[[package]]
name = "crossterm"
name = "crossterm"
version = "0.2
7.0
"
version = "0.2
8.1
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df
"
checksum = "
829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6
"
dependencies = [
dependencies = [
"bitflags 2.6.0",
"bitflags 2.6.0",
"crossterm_winapi",
"crossterm_winapi",
"libc",
"mio",
"mio 0.8.11",
"parking_lot",
"parking_lot",
"rustix",
"signal-hook",
"signal-hook",
"signal-hook-mio",
"signal-hook-mio",
"winapi",
"winapi",
...
@@ -1473,6 +1502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -1473,6 +1502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
dependencies = [
"ahash",
"ahash",
"allocator-api2",
]
]
[[package]]
[[package]]
...
@@ -1809,12 +1839,6 @@ dependencies = [
...
@@ -1809,12 +1839,6 @@ dependencies = [
"unicode-width",
"unicode-width",
]
]
[[package]]
name = "indoc"
version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
[[package]]
[[package]]
name = "init-tracing-opentelemetry"
name = "init-tracing-opentelemetry"
version = "0.14.1"
version = "0.14.1"
...
@@ -1828,6 +1852,16 @@ dependencies = [
...
@@ -1828,6 +1852,16 @@ dependencies = [
"tracing-opentelemetry 0.21.0",
"tracing-opentelemetry 0.21.0",
]
]
[[package]]
name = "instability"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c"
dependencies = [
"quote",
"syn 2.0.76",
]
[[package]]
[[package]]
name = "instant"
name = "instant"
version = "0.1.13"
version = "0.1.13"
...
@@ -2066,6 +2100,15 @@ dependencies = [
...
@@ -2066,6 +2100,15 @@ dependencies = [
"imgref",
"imgref",
]
]
[[package]]
name = "lru"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
dependencies = [
"hashbrown 0.14.5",
]
[[package]]
[[package]]
name = "macro_rules_attribute"
name = "macro_rules_attribute"
version = "0.2.0"
version = "0.2.0"
...
@@ -2234,18 +2277,6 @@ dependencies = [
...
@@ -2234,18 +2277,6 @@ dependencies = [
"adler2",
"adler2",
]
]
[[package]]
name = "mio"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"log",
"wasi",
"windows-sys 0.48.0",
]
[[package]]
[[package]]
name = "mio"
name = "mio"
version = "1.0.2"
version = "1.0.2"
...
@@ -2254,6 +2285,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
...
@@ -2254,6 +2285,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
dependencies = [
"hermit-abi 0.3.9",
"hermit-abi 0.3.9",
"libc",
"libc",
"log",
"wasi",
"wasi",
"windows-sys 0.52.0",
"windows-sys 0.52.0",
]
]
...
@@ -3255,18 +3287,22 @@ dependencies = [
...
@@ -3255,18 +3287,22 @@ dependencies = [
[[package]]
[[package]]
name = "ratatui"
name = "ratatui"
version = "0.2
3.0
"
version = "0.2
8.1
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
2e2e4cd95294a85c3b4446e63ef054eea43e0205b1fd60120c16b74ff7ff96a
d"
checksum = "
fdef7f9be5c0122f890d58bdf4d964349ba6a6161f705907526d891efabba57
d"
dependencies = [
dependencies = [
"bitflags 2.6.0",
"bitflags 2.6.0",
"cassowary",
"cassowary",
"compact_str",
"crossterm",
"crossterm",
"indoc",
"instability",
"itertools 0.11.0",
"itertools 0.13.0",
"lru",
"paste",
"paste",
"strum",
"strum",
"strum_macros",
"unicode-segmentation",
"unicode-segmentation",
"unicode-truncate",
"unicode-width",
"unicode-width",
]
]
...
@@ -3861,7 +3897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -3861,7 +3897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
dependencies = [
dependencies = [
"libc",
"libc",
"mio
0.8.11
",
"mio",
"signal-hook",
"signal-hook",
]
]
...
@@ -3956,6 +3992,12 @@ dependencies = [
...
@@ -3956,6 +3992,12 @@ dependencies = [
"unicode-segmentation",
"unicode-segmentation",
]
]
[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
[[package]]
name = "strsim"
name = "strsim"
version = "0.11.1"
version = "0.11.1"
...
@@ -3964,20 +4006,20 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
...
@@ -3964,20 +4006,20 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
[[package]]
name = "strum"
name = "strum"
version = "0.2
5.0
"
version = "0.2
6.3
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125
"
checksum = "
8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06
"
dependencies = [
dependencies = [
"strum_macros",
"strum_macros",
]
]
[[package]]
[[package]]
name = "strum_macros"
name = "strum_macros"
version = "0.2
5.3
"
version = "0.2
6.4
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0
"
checksum = "
4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be
"
dependencies = [
dependencies = [
"heck 0.
4.1
",
"heck 0.
5.0
",
"proc-macro2",
"proc-macro2",
"quote",
"quote",
"rustversion",
"rustversion",
...
@@ -4489,7 +4531,7 @@ dependencies = [
...
@@ -4489,7 +4531,7 @@ dependencies = [
"backtrace",
"backtrace",
"bytes",
"bytes",
"libc",
"libc",
"mio
1.0.2
",
"mio",
"parking_lot",
"parking_lot",
"pin-project-lite",
"pin-project-lite",
"signal-hook-registry",
"signal-hook-registry",
...
@@ -4933,6 +4975,17 @@ version = "1.11.0"
...
@@ -4933,6 +4975,17 @@ version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
[[package]]
name = "unicode-truncate"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
dependencies = [
"itertools 0.13.0",
"unicode-segmentation",
"unicode-width",
]
[[package]]
[[package]]
name = "unicode-width"
name = "unicode-width"
version = "0.1.13"
version = "0.1.13"
...
...
benchmark/Cargo.toml
View file @
9cca3e0b
...
@@ -16,7 +16,7 @@ path = "src/main.rs"
...
@@ -16,7 +16,7 @@ path = "src/main.rs"
[dependencies]
[dependencies]
average
=
"0.14"
average
=
"0.14"
clap
=
{
version
=
"4.4.5"
,
features
=
[
"derive"
,
"env"
]
}
clap
=
{
version
=
"4.4.5"
,
features
=
[
"derive"
,
"env"
]
}
crossterm
=
"0.2
7
"
crossterm
=
"0.2
8.1
"
float-ord
=
"0.3.2"
float-ord
=
"0.3.2"
serde
=
{
version
=
"1.0.188"
,
features
=
["derive"]
}
serde
=
{
version
=
"1.0.188"
,
features
=
["derive"]
}
serde_json
=
"1.0"
serde_json
=
"1.0"
...
@@ -25,7 +25,7 @@ text-generation-client = { path = "../backends/client" }
...
@@ -25,7 +25,7 @@ text-generation-client = { path = "../backends/client" }
thiserror
=
"1.0.48"
thiserror
=
"1.0.48"
tokenizers
=
{
workspace
=
true
}
tokenizers
=
{
workspace
=
true
}
tokio
=
{
version
=
"1.32.0"
,
features
=
[
"rt"
,
"rt-multi-thread"
,
"parking_lot"
,
"signal"
,
"sync"
,
"macros"
]
}
tokio
=
{
version
=
"1.32.0"
,
features
=
[
"rt"
,
"rt-multi-thread"
,
"parking_lot"
,
"signal"
,
"sync"
,
"macros"
]
}
tui
=
{
package
=
"
ratatui
"
,
version
=
"0.2
3
"
,
default-features
=
false
,
features
=
["crossterm"]
}
ratatui
=
{
version
=
"0.2
8.1
"
,
default-features
=
false
,
features
=
["crossterm"]
}
tracing
=
"0.1.37"
tracing
=
"0.1.37"
tracing-subscriber
=
{
version
=
"0.3.17"
,
features
=
[
"json"
,
"env-filter"
]
}
tracing-subscriber
=
{
version
=
"0.3.17"
,
features
=
[
"json"
,
"env-filter"
]
}
hf-hub
=
{
workspace
=
true
}
hf-hub
=
{
workspace
=
true
}
benchmark/src/app.rs
View file @
9cca3e0b
/// Inspired by https://github.com/hatoo/oha/blob/bb989ea3cd77727e7743e7daa60a19894bb5e901/src/monitor.rs
/// Inspired by https://github.com/hatoo/oha/blob/bb989ea3cd77727e7743e7daa60a19894bb5e901/src/monitor.rs
use
crate
::
generation
::{
Decode
,
Message
,
Prefill
};
use
crate
::
generation
::{
Decode
,
Message
,
Prefill
};
use
crossterm
::
event
::{
KeyCode
,
KeyEvent
,
KeyModifiers
};
use
crossterm
::
event
::{
KeyCode
,
KeyEvent
,
KeyModifiers
};
use
text_generation_client
::
ClientError
;
use
ratatui
::
layout
::{
Alignment
,
Constraint
,
Direction
,
Layout
};
use
tokio
::
sync
::
mpsc
;
use
ratatui
::
style
::{
Color
,
Modifier
,
Style
};
use
tui
::
backend
::
Backend
;
use
ratatui
::
text
::{
Line
,
Span
};
use
tui
::
layout
::{
Alignment
,
Constraint
,
Direction
,
Layout
};
use
ratatui
::
widgets
::{
use
tui
::
style
::{
Color
,
Modifier
,
Style
};
use
tui
::
text
::{
Line
,
Span
};
use
tui
::
widgets
::{
Axis
,
BarChart
,
Block
,
Borders
,
Chart
,
Dataset
,
Gauge
,
GraphType
,
Paragraph
,
Tabs
,
Axis
,
BarChart
,
Block
,
Borders
,
Chart
,
Dataset
,
Gauge
,
GraphType
,
Paragraph
,
Tabs
,
};
};
use
tui
::{
symbols
,
Frame
};
use
ratatui
::{
symbols
,
Frame
};
use
text_generation_client
::
ClientError
;
use
tokio
::
sync
::
mpsc
;
/// TUI powered App
/// TUI powered App
pub
(
crate
)
struct
App
{
pub
(
crate
)
struct
App
{
...
@@ -153,7 +152,7 @@ impl App {
...
@@ -153,7 +152,7 @@ impl App {
}
}
/// Render frame
/// Render frame
pub
fn
render
<
B
:
Backend
>
(
&
mut
self
,
f
:
&
mut
Frame
<
'_
,
B
>
)
{
pub
fn
render
(
&
mut
self
,
f
:
&
mut
Frame
)
{
let
batch_progress
=
let
batch_progress
=
(
self
.completed_batch
as
f64
/
self
.data.batch_size
.len
()
as
f64
)
.clamp
(
0.0
,
1.0
);
(
self
.completed_batch
as
f64
/
self
.data.batch_size
.len
()
as
f64
)
.clamp
(
0.0
,
1.0
);
let
run_progress
=
let
run_progress
=
...
@@ -172,7 +171,7 @@ impl App {
...
@@ -172,7 +171,7 @@ impl App {
]
]
.as_ref
(),
.as_ref
(),
)
)
.split
(
f
.
size
());
.split
(
f
.
area
());
// Top row horizontal layout
// Top row horizontal layout
let
top
=
Layout
::
default
()
let
top
=
Layout
::
default
()
...
@@ -239,7 +238,7 @@ impl App {
...
@@ -239,7 +238,7 @@ impl App {
f
.render_widget
(
helper
,
row5
[
0
]);
f
.render_widget
(
helper
,
row5
[
0
]);
// Batch tabs
// Batch tabs
let
titles
=
self
let
titles
:
Vec
<
Line
>
=
self
.data
.data
.batch_size
.batch_size
.iter
()
.iter
()
...
...
benchmark/src/lib.rs
View file @
9cca3e0b
...
@@ -7,12 +7,12 @@ mod utils;
...
@@ -7,12 +7,12 @@ mod utils;
use
crate
::
app
::
App
;
use
crate
::
app
::
App
;
use
crate
::
event
::
Event
;
use
crate
::
event
::
Event
;
use
crossterm
::
ExecutableCommand
;
use
crossterm
::
ExecutableCommand
;
use
ratatui
::
backend
::
CrosstermBackend
;
use
ratatui
::
Terminal
;
use
std
::
io
;
use
std
::
io
;
use
text_generation_client
::
v3
::{
GrammarType
,
NextTokenChooserParameters
,
ShardedClient
};
use
text_generation_client
::
v3
::{
GrammarType
,
NextTokenChooserParameters
,
ShardedClient
};
use
tokenizers
::
Tokenizer
;
use
tokenizers
::
Tokenizer
;
use
tokio
::
sync
::{
broadcast
,
mpsc
};
use
tokio
::
sync
::{
broadcast
,
mpsc
};
use
tui
::
backend
::
CrosstermBackend
;
use
tui
::
Terminal
;
/// Run benchmarking app
/// Run benchmarking app
#[allow(clippy::too_many_arguments)]
#[allow(clippy::too_many_arguments)]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment