IBM / aihwkit

IBM Analog Hardware Acceleration Kit
https://aihwkit.readthedocs.io
Apache License 2.0
349 stars 145 forks source link

Jart synapse #679

Open ZhenmingYu opened 1 month ago

ZhenmingYu commented 1 month ago

Related issues

Support a new device type based on JART V1b memristor model and test scripts for that. Details can be found at https://ieeexplore.ieee.org/document/10052010

Fixing the issues in #583 about building errors

Description

Deleted CUDA related codes, fixed JART CPU version. Still not able to build, error relates to bit_line_maker.cu and std_function.h.

Details

I think I did everything correctly, and the CPU version is able to build now.

However, the CUDA side seems to have some unrelated problem? And even the IBM:master branch has the same issue. I'm not sure whether this is an issue with my compiler setup. Could you check it on your side?

[ 1%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_JART_v1b_device.cpp.o [ 2%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_buffered_transfer_device.cpp.o [ 3%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_chopped_transfer_device.cpp.o [ 5%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_constantstep_device.cpp.o [ 6%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_dynamic_transfer_device.cpp.o [ 7%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_expstep_device.cpp.o [ 8%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_forward_backward_pass.cpp.o [ 10%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_hidden_device.cpp.o [ 11%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_linearstep_device.cpp.o [ 12%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_mixedprec_device.cpp.o [ 13%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_mixedprec_device_base.cpp.o [ 15%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_mixedprec_int_device.cpp.o [ 16%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_onesided_device.cpp.o [ 17%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_piecewisestep_device.cpp.o [ 18%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_powstep_device.cpp.o [ 20%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_powstep_reference_device.cpp.o [ 21%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_pulsed.cpp.o [ 22%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_pulsed_device.cpp.o [ 23%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_pulsed_meta_parameter.cpp.o [ 25%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_simple_device.cpp.o [ 26%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_softbounds_reference_device.cpp.o [ 27%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_transfer_device.cpp.o [ 28%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_vector_device.cpp.o [ 30%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/rpu_weight_updater.cpp.o [ 31%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/sparse_bit_line_maker.cpp.o [ 32%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/utility_functions.cpp.o [ 33%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/weight_clipper.cpp.o [ 35%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/weight_drifter.cpp.o [ 36%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/weight_modifier.cpp.o [ 37%] Building CXX object CMakeFiles/RPU_CPU.dir/src/rpucuda/weight_remapper.cpp.o [ 38%] Linking CXX static library libRPU_CPU.a [ 43%] Built target RPU_CPU [ 45%] Building CUDA object CMakeFiles/RPU_GPU.dir/src/rpucuda/cuda/bit_line_maker.cu.o /usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘...’: 435 | function(_Functor&& f) | ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘...’: 530 | operator=(_Functor&& f) | ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’ gmake[2]: [CMakeFiles/RPU_GPU.dir/build.make:77: CMakeFiles/RPU_GPU.dir/src/rpucuda/cuda/bit_line_maker.cu.o] Error 1 gmake[1]: [CMakeFiles/Makefile2:164: CMakeFiles/RPU_GPU.dir/all] Error 2 gmake: *** [Makefile:136: all] Error 2 Traceback (most recent call last): File "/Users/zyu/virtual_env/aihwkit/lib/python3.10/site-packages/skbuild/setuptools_wrap.py", line 672, in setup cmkr.make(make_args, install_target=cmake_install_target, env=env) File "/Users/zyu/virtual_env/aihwkit/lib/python3.10/site-packages/skbuild/cmaker.py", line 696, in make self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env) File "/Users/zyu/virtual_env/aihwkit/lib/python3.10/site-packages/skbuild/cmaker.py", line 741, in make_impl raise SKBuildError(msg)

An error occurred while building with CMake. Command: /Users/zyu/virtual_env/aihwkit/lib/python3.10/site-packages/cmake/data/bin/cmake --build . --target install --config Release -- Install target: install Source directory: /Users/zyu/aihwkit Working directory: /Users/zyu/aihwkit/_skbuild/linux-x86_64-3.10/cmake-build Please check the install target is valid and see CMake's output for more information.