Opened 7 months ago

Closed 5 months ago

#68569 closed defect (fixed)

linear_algebra PG: could we implement an option to override default variants from PG?

Reported by: barracuda156 Owned by: barracuda156
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: catap (Kirill A. Korinsky), mascguy (Christopher Nielsen), michaelld (Michael Dickens), eborisch (Eric A. Borisch)
Port: linear_algebra, vecLibFort, OpenBLAS

Description

The problem: PG sets default variant to +accelerate for older systems (to which, perhaps, there was/is a credible reason), but some ports do not build with old Accelerate (or do not support Accelerate at the moment). In those cases we have to use OpenBLAS, however PG does not presently allow custom default variant:

36-185% port lint --nitpick bpack
Error: bpack: Variant accelerate conflicts with openblas
Error: Unable to open port: Error evaluating variants

Of course, it will work to remove PG completely and just use OpenBLAS, exclusively, however it may be suboptimal for a number of reasons: 1) It may not be known exactly for which systems Accelerate fails, so it is better to allow a user to choose a variant contrary to PG and portfile choice (what PG does allow). 2) Accelerate support may be temporarily broken or not yet implemented, and it is bothersome to rewrite an implementation manually every time this occurs or throw/comment out chunks of code. 3) Even if Accelerate (or OpenBLAS) builds are known to be broken with some port, it is beneficial – potentially – to make testing easier, allowing non-default builds (i.e. use PG, not hardcoding). But needed default may differ from one-size-fits-all present implementation.

What does everyone thinks?

Change History (1)

comment:1 Changed 5 months ago by barracuda156

Owner: set to barracuda156
Resolution: fixed
Status: newclosed

In 5986d5a39071ec27241f81d7a96baa147bea7a60/macports-ports (master):

linear_algebra PG: support FlexiBLAS and blis; allow custom default_variants

Closes: #68569
Closes: #68910

Note: See TracTickets for help on using tickets.