cmake issue after #1286: ModuleNotFoundError: No module named 'dataclasses'
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.
Add more information: The issue is found on RHEL 8 where Python version is outdated (Python 2.7.18)
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
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?
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!
The workaround for older OSs had been implemented.