I'd like to have a GUI version (Combination Generator) for Windows and
Linux both.
1. GPU support (NVIDIA CUDA, Intel Iris, AMD, Apple MPS): Add option
to use gpu acceleration nvidia cuda gpu(optionally, means this
setting would only be eanabled if an nvidia cuda gpu is detected
otherwise this option would be disabled by default), intel(i.e intel iris
xe graphics, amd, Apple MPS. This option would display dropdown
menu of available gpu’s to select, if no gpu is available then none
will be selected as default.
2. MultiThreading/Multiprocessing: It should also give an
option(dropdown menu) to choose number of cpu/threads manually.
And as default it should choose optimal[safe] number of
cpu’s/threads [also it should automatically detect number of
cpu’s/threads available on the pc to show in dropdown menu].
Always use multithreading by default to speedup combination
generation.
3. Start Generation button to start generation.
4. Stop/Cancel button to stop the process.
5. Resume/Pause button to Continue/Resume or Pause the Process
6. Combine Files on Completion checkbox to enable disable combining
files on after generation process completes. Default state is
disabled.
7. Auto-resume support
a. Save a checkpoint file after each chunk is written.
b. On restart, skip completed chunks.
8. Manual Pause/Resume buttons in GUI.
9. Save/Load Presets JSON/YAML format
10. Themes Light & Dark modes
11. Real-time Progress % done + ETA + elapsed time
12. GUI-safe logging to output_console
13. Cross-platform Windows .exe, Linux .AppImage or .deb
14. Progress Display % completed with progress bar, remaining
time, elapsed time, ETA
15. Output GZipped files (multi-part) split files with progress
by default.
16. Fallback gracefully to CPU if GPU unavailable or disabled
It should display above mentioned options along these with already added
options [like Character Set, Combination Length, Chunk Size, Filename
Prefix].
Technologies: PyQt6, CuPy, Numba, OpenCL, PyOpenCL, PyInstaller
for .exe, fpm / linuxdeploy for .AppImage / .deb, PyTorch
Logics:
Create a JSON file per generation run storing:
Charset, Length, Number of CPUs
Chunks completed
Manual Pause/Resume:
Pause: stop dispatching to [Link].
Resume: continue from last saved index.
Saves a .resume file with metadata on each chunk.
Skips chunks that are already completed when resuming.
Write a .resume marker file after successful write.
Return a log string to display in the GUI.
Check for .resume files and skip completed chunks.
Emit real-time log updates to the GU
GPU Detection Layer:
At launch: detect and show available accelerators.
Disable GPU options in GUI if unsupported.
Logs/Output Console:
Output console shows real-time logs for each chunk's progress.
GeneratorGUI connects and displays these logs in output_console