Bug 2221418

Summary: Review Request: python-tensile - Tool for creating benchmark-driven backend libraries for GEMMs
Product: [Fedora] Fedora Reporter: Jeremy Newton <alexjnewt>
Component: Package ReviewAssignee: Tom Rix <trix>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: package-review, tflink, trix
Target Milestone: ---Flags: ppisar: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jeremy Newton 2023-07-08 22:45:24 UTC
Spec URL: https://mystro256.fedorapeople.org/python-tensile.spec
SRPM URL: https://mystro256.fedorapeople.org/python-tensile-5.6.0-1.fc39.src.rpm
COPR Build: https://copr.fedorainfracloud.org/coprs/mystro256/rocm-hip/build/6154053/
Description:
Tensile is a tool for creating benchmark-driven backend libraries for GEMMs,
GEMM-like problems (such as batched GEMM), and general N-dimensional tensor
contractions on a GPU. The Tensile library is mainly used as backend library to
rocBLAS. Tensile acts as the performance backbone for a wide variety of
'compute' applications running on AMD GPUs.
Fedora Account System Username: mystro256

Comment 1 Jeremy Newton 2023-07-08 22:48:09 UTC
Note that I'm still working on rocblas, but it appears to find tensile fine as-is.
rocBLAS uses the devel files for some stuff, so I just trimmed things down a bit by removing the miopen archives.

Comment 2 Jeremy Newton 2023-07-08 23:00:56 UTC
I think I might need to add rocm-smi-devel has a requires for the devel package.
Tensile is a bit odd, its a python lib but installs some source code for rocblas to consume.

Comment 3 Tom Rix 2023-07-09 15:38:26 UTC
The _bindir/* should work, this is the first one i tried

fedora > /usr/bin/tensile_rocblas_cgemm 
...
b'CMake Error: The source directory "/usr/lib/python3.12/site-packages/Tensile/Source" does not exist.\nSpecify --help for usage, or press the help button on the CMake GUI.\n'
Traceback (most recent call last):
  File "/usr/bin/tensile_rocblas_cgemm", line 8, in <module>
    sys.exit(TensileROCBLASCGEMM())

...

subprocess.CalledProcessError: Command '['cmake', '-DCMAKE_BUILD_TYPE=Release', '-DTENSILE_USE_MSGPACK=ON', '-DTENSILE_USE_LLVM=ON', '-DTensile_LIBRARY_FORMAT=msgpack', '-DCMAKE_CXX_COMPILER=/opt/rocm/bin/hipcc', '-DCMAKE_C_COMPILER=/opt/rocm/bin/hipcc', '/usr/lib/python3.12/site-packages/Tensile/Source']' returned non-zero exit status 1.

So at least /Source needs be in the python3-tensile 
The use /opt/rocm/bin/hipcc needs to change /usr/bin/hipcc or just hipcc and assume PATH will find it

why the license and readme needed in the -devel package ?

i am not sure about the miopen configs either, miopen needs blas and blas need this..
let's not over think it and add them back if there is a problem.

check is an option, but Tests/ is always installed, should installing Tests/ follow the check option ?

Comment 4 Jeremy Newton 2023-07-09 17:52:29 UTC
> So at least /Source needs be in the python3-tensile 

My gut says that everything should be in the devel package, as it seems like tensile is a python tool inter-tangled with a static library.

> The use /opt/rocm/bin/hipcc needs to change /usr/bin/hipcc or just hipcc and assume PATH will find it

Ack, I should probably look to see what Debian did, so I can reduce some back and forth.

> why the license and readme needed in the -devel package ?

It was a mistake, I'll fix it.

> i am not sure about the miopen configs either, miopen needs blas and blas need this..
> let's not over think it and add them back if there is a problem.

Yeah I can just drop the "rm" later. It's mostly duplicated files, so I'd rather exclude it unless it's clear we need it.

> check is an option, but Tests/ is always installed, should installing Tests/ follow the check option ?

I'm not sure if the tests are used for rocblas tests yet. In the meantime, I can do the same as the miopen archives and remove it for now.