Skip to content

Conversation

@google-labs-jules
Copy link
Contributor

This update adds two major features:

  • The ability for the application to use native (system-wide) installations of the CUDA Toolkit and its dependencies, with proper error messages if they are not found.
  • The ability to compress files into .zip archives, providing a standard container for one or more GPU-compressed files. A disabled option for .7z has been added for future implementation.

The console and GUI applications have been updated to support these new features, including new command-line options and UI controls.

This commit introduces several new features and improvements:

1.  **Native CUDA/nvCOMP Dependency Loading:**
    - The application now dynamically searches for and loads native CUDA Toolkit and nvCOMP libraries from standard installation paths.
    - This removes the need to have the DLLs alongside the executable and allows the app to use existing CUDA installations.
    - P/Invoke calls were refactored to use dynamic loading (`LoadLibrary`/`GetProcAddress` on Windows), making the application more robust and version-agnostic.
    - Added error handling to gracefully manage cases where the native libraries are not found, falling back to simulation mode.

2.  **ZIP Archive Support:**
    - Added the ability to compress files into `.zip` archives.
    - The application can now compress multiple files or entire folders into a single `.zip` file.
    - Decompression of `.zip` archives is also supported. The application intelligently handles archives with mixed content (a combination of `.gdef` and other files).
    - A new `ArchiveManager` class was created to handle the zip functionality using `System.IO.Compression`.

3.  **Console Application Enhancements:**
    - Added a `--format` option to the `compress` command to specify the output format (`gdef` or `zip`).
    - Added an `--output-dir` option to the `decompress` command to specify the extraction directory.
    - Improved command-line argument parsing.

4.  **GUI Application Enhancements:**
    - Added a dropdown menu to select the output format.
    - Added a folder selection dialog for decompression.
    - Added a prominent status indicator to show whether GPU acceleration is active or if the app is in simulation mode.

These changes make the application more powerful, flexible, and user-friendly.
@google-labs-jules
Copy link
Contributor Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll acknowledge your comments with a 👀 emoji and then get to work. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

I will automatically address your feedback on specific files or sections of files. For any comments you don't want me to act on, just include `(aside)`.

PS: Responding to comments on the entire PR are not yet supported but coming soon.


For security, I will only act on instructions from the user who triggered this task for this pull request.

@temotskipa temotskipa marked this pull request as ready for review September 1, 2025 19:29
@temotskipa temotskipa merged commit 1a4ed2e into main Sep 1, 2025
6 checks passed
@temotskipa temotskipa deleted the feature/native-deps-and-zip-archives branch September 1, 2025 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants