Skip to content

Implement backward compatibility support in UMF #908

@vinser52

Description

@vinser52

Environment Information

  • UMF version (hash commit or a tag): main branch
  • OS(es) version(s): All
  • compiler, libraries, and other related tools version(s): oneAPI 2025.0 base kit

Please provide a reproduction of the bug:

  1. Install oneAPI 2025.0 base kit (the first release with UMF).
  2. Build some SYCL sample. I used the MonteCarloPi example from the oneAPI-samples repository.
  3. Make sure that you can run it without errors:
svinogra@gkdse-dnp-01:~/oneAPI-samples/DirectProgramming/C++SYCL/MapReduce/MonteCarloPi/build$ make run
Calculating estimated value of pi...

Running on Intel(R) Data Center GPU Max 1100
The estimated value of pi (N = 10000) is: 3.1652

Computation complete. The processing time was 0.663949 seconds.
The simulation plot graph has been written to 'MonteCarloPi.bmp'
Built target run
  1. Now try to run with the development version of libumf.so. I compiled UMF from the source on my development machine. An tried to run the same example with LD_LIBRARY_PATH environment to use my development version of libumf.so.
svinogra@gkdse-dnp-01:~/oneAPI-samples/DirectProgramming/C++SYCL/MapReduce/MonteCarloPi/build$ LD_LIBRARY_PATH=~/unified-memory-framework/build/lib/:$LD_LIBRARY_PATH make run
Calculating estimated value of pi...
montecarlopi: /user/svinogra/unified-memory-framework/src/memory_provider.c:190: umfMemoryProviderCreate: Assertion `ops->version == UMF_VERSION_CURRENT' failed.
Aborted (core dumped)

How often bug is revealed:

always

Actual behavior:

Crashing happens because the UMF code has multiple places where we compare the current version with the version the client was built from.

Expected behavior:

The newer version of UMF should be backward compatible with the old one. E.g. oneAPI base kit 2025.0 should work with newer version of UMF.

Details

Today all our checks require an exact match, but we need to require that the current version of UMF is equal or greater that the version used by the client.

Additional information about Priority and Help Requested:

Requested priority: Showstopper

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions