Re: Pre-Generated Binaries for Perforance from Upstream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 16, 2024 at 03:37:37PM -0700, Tim Flink wrote:
> I have another question about the review of miopen [1][2] but this
> time it's about the upstream's use of pre-generated binary files.
> 
> The miopen upstream includes many compressed binaries (pretty much
> one per supported GPU architecture) which, according to their
> documentation, are tuning values meant to give its auto-tuning
> feature a good place to start from [3] in order to boost initial
> performance. As I write this, there is not a fully documented way
> to generate those tuning values at build time but we could just
> not include those tuning values if we accept the performance hit
> that would entail. A ticket has been filed upstream asking for
> an alternative to using the pre-built binary files [4] which has
> explained some of the process.
> 
> My question is: do these binary files fall into the category of
> "If the content enhances the OS user experience, then the content
> is OK to be packaged in Fedora."?
> 
> At the moment, my assumption is that the binary files are not
> allowed if the build process is not completely documented. If
> the build process is documented, they could be allowed but
> building/optimizing from scratch at package build time would
> be preferred.
> 
> I would appreciate insight that folks may have.

AFAICT, these binary files are compressed sqlite databases. Taking
a single database (gfx900_56.db.bz2), I see just two tables with a
tonne of tunable values.

These are not binaries in the context of

   https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#prebuilt-binaries-or-libraries

and IMHO also not "content" in the context of the:

   https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#_impermissible_content

To me the binary nature of these files is largely tangential, it was
just a convenient data format upstream chose. They are essentially
"just" configuration files for the software, providing a varity of
defaults for different hardware. That they chose sqlite instead of
plain text is fine and this choice has no bearing on whether it is
permissible in Fedora pacakges.

There is a question of whether these files can be 100% automatically
generated. The comment in the upstream ticket:

   "If you know the convolution configs that will be used
    in your systems,.."

strongly suggests these cannot be 100% auto-generated - they require
external human domain knowledge of each hardware target to be input.

*If* upstream had kept a record of these human provided inputs in a
script/makefile/etc, convolution configs, for each platform, then
there could be an argument for that being the preferred source form,
and thus push towards re-generation. The ticket suggests such a record
does not exist, and as such  the sqlite files are effectively the
preferred source form for upstream.

In any case, per:

  https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#pregenerated-code

Fedora merely suggests, but does not require you to re-generate "code"
during package build.

Overall I think it is acceptable to package these DB configuration files
as is.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
--
_______________________________________________
packaging mailing list -- packaging@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to packaging-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/packaging@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux