ROCm / composable_kernel

Composable Kernel: Performance Portable Programming Model for Machine Learning Tensor Operators
https://rocm.docs.amd.com/projects/composable_kernel/en/latest/
Other
251 stars 102 forks source link

cmake issue after #1286: ModuleNotFoundError: No module named 'dataclasses' #1334

Open junliume opened 2 weeks ago

junliume commented 2 weeks ago

https://github.com/ROCm/composable_kernel/blob/acda4c5a3c34c13b71475fdd963e61182bba8a76/example/ck_tile/01_fmha/CMakeLists.txt#L12-L15

CMAKE issue after #1286

The cmake command:

CXX=/opt/rocm/bin/amdclang++ CC=/opt/rocm/bin/amdclang cmake -DCMAKE_PREFIX_PATH="/opt/rocm" -DCMAKE_BUILD_TYPE=Release -DGPU_TARGETS="gfx942" ..

adding example example_gemm_multiply_multiply_xdl_fp16
Traceback (most recent call last):
  File "/data/driver/composable_kernel/example/ck_tile/01_fmha/generate.py", line 9, in <module>
    from dataclasses import dataclass
ModuleNotFoundError: No module named 'dataclasses'
Traceback (most recent call last):
  File "/data/driver/composable_kernel/example/ck_tile/01_fmha/generate.py", line 9, in <module>
    from dataclasses import dataclass
ModuleNotFoundError: No module named 'dataclasses'
CMake Error at example/ck_tile/01_fmha/CMakeLists.txt:14 (file):
  file STRINGS file
  "/data/driver/composable_kernel/build/example/ck_tile/01_fmha/fwd_blob_list.txt"
  cannot be read.

CMake Error at example/ck_tile/01_fmha/CMakeLists.txt:15 (file):
  file STRINGS file
  "/data/driver/composable_kernel/build/example/ck_tile/01_fmha/bwd_blob_list.txt"
  cannot be read.

CMake Error at example/ck_tile/01_fmha/CMakeLists.txt:17 (add_custom_command):
  add_custom_command Wrong syntax.  A TARGET or OUTPUT must be specified.

CMake Error at example/ck_tile/01_fmha/CMakeLists.txt:23 (add_custom_command):
  add_custom_command Wrong syntax.  A TARGET or OUTPUT must be specified.
junliume commented 2 weeks ago

Add more information: The issue is found on RHEL 8 where Python version is outdated (Python 2.7.18)

junliume commented 2 weeks ago

Yep, confirmed if we install Python 3.8 or above from RHEL we do not see the error.

Reminder: we may see RHEL8 or other legacy distribution users to report this problem, so keep this issue as FYI

carlushuang commented 2 weeks ago

Yes since we introducing python base codegen, we require python 3.8, but I may need @illsilin input do you think this is good to do it? Or we just type somewhere in the README our dependency?

illsilin commented 2 weeks ago

The main challenge is that many of the dockers that are used to test CK are using old packages for everything. That's why we had to downgrade from Python 3.8 to 3.6. But I think it's time for us to put some pressure on those teams who keep using those old packages, because those versions are no longer even supported! Even 3.8 is reaching the end of its life cycle soon! Screenshot 2024-06-14 083734