diff options
Diffstat (limited to 'GUI')
| -rw-r--r-- | GUI/GUI/GUI/Config.cpp | 3 | ||||
| -rw-r--r-- | GUI/GUI/GUI/Config.h | 1 | ||||
| -rw-r--r-- | GUI/GUI/GUI/Frame.cpp | 37 | ||||
| -rw-r--r-- | GUI/GUI/GUI/Frame.h | 1 |
4 files changed, 42 insertions, 0 deletions
diff --git a/GUI/GUI/GUI/Config.cpp b/GUI/GUI/GUI/Config.cpp index 52f6f30..7cf3833 100644 --- a/GUI/GUI/GUI/Config.cpp +++ b/GUI/GUI/GUI/Config.cpp @@ -69,6 +69,7 @@ AppConfig::AppConfig(wxTextCtrl* out) model_translation("nllb-200-distilled-600M"),
button("left joystick"),
prio("normal"),
+ compute_type("float16"),
enable_local_beep(true),
enable_browser_src(false),
@@ -117,6 +118,7 @@ bool AppConfig::Serialize(const std::filesystem::path& path) { cm.Set("model_translation", model_translation);
cm.Set("button", button);
cm.Set("prio", prio);
+ cm.Set("compute_type", compute_type);
cm.Set("enable_local_beep", enable_local_beep);
cm.Set("enable_browser_src", enable_browser_src);
@@ -178,6 +180,7 @@ bool AppConfig::Deserialize(const std::filesystem::path& path) { cm.Get("model_translation", c.model_translation);
cm.Get("button", c.button);
cm.Get("prio", c.prio);
+ cm.Get("compute_type", c.compute_type);
cm.Get("enable_local_beep", c.enable_local_beep);
cm.Get("enable_browser_src", c.enable_browser_src);
diff --git a/GUI/GUI/GUI/Config.h b/GUI/GUI/GUI/Config.h index 0d0da66..906982e 100644 --- a/GUI/GUI/GUI/Config.h +++ b/GUI/GUI/GUI/Config.h @@ -55,6 +55,7 @@ public: std::string model_translation;
std::string button;
std::string prio;
+ std::string compute_type;
bool enable_local_beep;
bool enable_browser_src;
diff --git a/GUI/GUI/GUI/Frame.cpp b/GUI/GUI/GUI/Frame.cpp index 8e4eb6d..66c3d4e 100644 --- a/GUI/GUI/GUI/Frame.cpp +++ b/GUI/GUI/GUI/Frame.cpp @@ -59,6 +59,7 @@ namespace { ID_PY_APP_BYTES_PER_CHAR,
ID_PY_APP_BUTTON,
ID_PY_APP_PRIO,
+ ID_PY_APP_COMPUTE_TYPE,
ID_PY_APP_MODEL_PANEL,
ID_PY_APP_ENABLE_LOCAL_BEEP,
ID_PY_APP_ENABLE_BROWSER_SRC,
@@ -534,6 +535,19 @@ namespace { const size_t kNumPrios = sizeof(kPrio) / sizeof(kPrio[0]);
constexpr int kPrioDefault = 0;
+ const wxString kComputeType[] = {
+ "int8",
+ "int8_float32",
+ "int8_float16",
+ "int8_bfloat16",
+ "int16",
+ "float16",
+ "bfloat16",
+ "float32",
+ };
+ const size_t kNumComputeTypes = sizeof(kComputeType) / sizeof(kComputeType[0]);
+ constexpr int kComputeTypeDefault = 4;
+
const wxString kDecodeMethods[] = {
"greedy",
"beam",
@@ -757,6 +771,14 @@ Frame::Frame() "The priority level at which the transcription process runs.");
py_app_prio_ = py_app_prio;
+ auto* py_app_compute_type = new wxChoice(py_app_config_panel_pairs,
+ ID_PY_APP_COMPUTE_TYPE, wxDefaultPosition,
+ wxDefaultSize, kNumComputeTypes, kComputeType);
+ py_app_compute_type->SetToolTip(
+ "The compute type to use for GPU inference. Ignored "
+ "if CPU mode is enabled.");
+ py_app_compute_type_ = py_app_compute_type;
+
auto* py_app_rows = new wxTextCtrl(py_app_config_panel_pairs,
ID_PY_APP_ROWS, std::to_string(app_c_->rows),
wxDefaultPosition, wxDefaultSize, /*style=*/0);
@@ -891,6 +913,11 @@ Frame::Frame() /*flags=*/wxEXPAND);
sizer->Add(new wxStaticText(py_app_config_panel_pairs,
+ wxID_ANY, /*label=*/"GPU compute type:"));
+ sizer->Add(py_app_compute_type, /*proportion=*/0,
+ /*flags=*/wxEXPAND);
+
+ sizer->Add(new wxStaticText(py_app_config_panel_pairs,
wxID_ANY, /*label=*/"Desktop keybind:"));
sizer->Add(py_app_keybind, /*proportion=*/0,
/*flags=*/wxEXPAND);
@@ -1621,6 +1648,11 @@ void Frame::ApplyConfigToInputFields() kNumPrios, app_c_->prio, kPrioDefault);
py_app_prio->SetSelection(prio_idx);
+ auto* py_app_compute_type = static_cast<wxChoice*>(FindWindowById(ID_PY_APP_COMPUTE_TYPE));
+ int compute_type_idx = GetDropdownChoiceIndex(kComputeType,
+ kNumComputeTypes, app_c_->compute_type, kComputeTypeDefault);
+ py_app_compute_type->SetSelection(compute_type_idx);
+
auto* py_app_desktop_keybind = static_cast<wxTextCtrl*>(FindWindowById(ID_PY_APP_KEYBIND));
py_app_desktop_keybind->Clear();
py_app_desktop_keybind->AppendText(app_c_->keybind);
@@ -2407,6 +2439,10 @@ void Frame::OnAppStart(wxCommandEvent& event) { if (prio_idx == wxNOT_FOUND) {
prio_idx = kPrioDefault;
}
+ int compute_type_idx = py_app_compute_type_->GetSelection();
+ if (compute_type_idx == wxNOT_FOUND) {
+ compute_type_idx = kComputeTypeDefault;
+ }
const bool enable_local_beep = py_app_enable_local_beep_->GetValue();
const bool enable_browser_src = py_app_enable_browser_src_->GetValue();
@@ -2444,6 +2480,7 @@ void Frame::OnAppStart(wxCommandEvent& event) { app_c_->bytes_per_char = bytes_per_char;
app_c_->button = kButton[button_idx].ToStdString();
app_c_->prio = kPrio[prio_idx].ToStdString();
+ app_c_->compute_type = kComputeType[compute_type_idx].ToStdString();
app_c_->rows = rows;
app_c_->cols = cols;
app_c_->enable_local_beep = enable_local_beep;
diff --git a/GUI/GUI/GUI/Frame.h b/GUI/GUI/GUI/Frame.h index ee91e98..f509dae 100644 --- a/GUI/GUI/GUI/Frame.h +++ b/GUI/GUI/GUI/Frame.h @@ -64,6 +64,7 @@ private: wxChoice* py_app_bytes_per_char_;
wxChoice* py_app_button_;
wxChoice* py_app_prio_;
+ wxChoice* py_app_compute_type_;
wxChoice* unity_chars_per_sync_;
wxChoice* unity_bytes_per_char_;
|
