-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support CUDA #51
Comments
Could you point to a git repo of a sample nvcc project? |
The one I'm most interested in speeding up is https://github.com/rapidsai/cudf, but it's a fairly complex project. The cpp/cuda code is in the Another example is https://github.com/NVIDIA/thrust. |
https://github.com/rapidsai/cudf/tree/branch-0.17/cpp Just a cmake build. cd cpp; mkdir -p build; cd build; cmake ../
# Run gg on the Makefile |
I tried, it doesn't work though. |
Could you give the errors here or link to a gist? I'll take a look. I'm porting gg now to AWSLinux2. |
$ gg infer make -j$(nproc)
[ 1%] Built target stringify
[ 2%] Stringify headers for use in JIT compiled code
→ Loading the thunks... done (3 ms).
[ 2%] Built target stringify_run
Scanning dependencies of target cudf_base
[ 3%] Building CXX object CMakeFiles/cudf_base.dir/src/binaryop/jit/code/traits.cpp.o
[ 4%] Building CXX object CMakeFiles/cudf_base.dir/src/binaryop/jit/code/kernel.cpp.o
[ 5%] Building CXX object CMakeFiles/cudf_base.dir/src/aggregation/aggregation.cpp.o
[ 5%] Building CUDA object CMakeFiles/cudf_base.dir/src/aggregation/aggregation.cu.o
[ 5%] Building CXX object CMakeFiles/cudf_base.dir/src/binaryop/binaryop.cpp.o
[ 6%] Building CXX object CMakeFiles/cudf_base.dir/src/binaryop/jit/code/operation.cpp.o
[ 6%] Building CXX object CMakeFiles/cudf_base.dir/src/aggregation/result_cache.cpp.o
[ 6%] Building CUDA object CMakeFiles/cudf_base.dir/src/column/column.cu.o
[ 6%] Building CUDA object CMakeFiles/cudf_base.dir/src/binaryop/compiled/binary_ops.cu.o
[ 7%] Building CUDA object CMakeFiles/cudf_base.dir/src/column/column_device_view.cu.o
[ 7%] Building CUDA object CMakeFiles/cudf_base.dir/src/bitmask/null_mask.cu.o
[ 7%] Building CXX object CMakeFiles/cudf_base.dir/src/column/column_factories.cpp.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/binaryop/jit/code/kernel.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TwpU37ygrqllBotAfN.NPcw9b6tljKEPDDLMiWMeA.2U000007ec
├─ compiled: TOT3YnlVj99B6bWjFOlI91.T62hgaOuCeh.eFLVY9aXA00000578
├─ assembled: TmJGubI9cI2n1x3O66L9AwOifFBr2Bzdr1VBSZgGOy.c0000055f
╰╼ output: CMakeFiles/cudf_base.dir/src/binaryop/jit/code/kernel.cpp.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/binaryop/jit/code/traits.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TM6DrgN5CtesWmWUwVAJVskdF8DcNAqezPzrQAZVauL0000007ec
├─ compiled: TVWnXH4I9wsR9aJ2LiykcrP6QfwEpgtkKyDrn20jHeAk00000578
├─ assembled: TLUz7APJFvwOKIi8287_hkfGZwTrHYgq2PAfkrzhs6OI0000055f
╰╼ output: CMakeFiles/cudf_base.dir/src/binaryop/jit/code/traits.cpp.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/binaryop/jit/code/operation.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TznUvOvwjQ6wnTgTVat7U.GJrOYiIeeZlZT7ezWeR.wM000007f8
├─ compiled: T3iZVI_.rYW1c7wJ9FCszVRrFtQWGh3BOsH4huQr6y0c00000578
├─ assembled: TK5STPFeV3Y09ej2iLi04Ksp7kNpLXfkebgFxe.rMYDs00000562
╰╼ output: CMakeFiles/cudf_base.dir/src/binaryop/jit/code/operation.cpp.o
[ 8%] Building CXX object CMakeFiles/cudf_base.dir/src/column/column_view.cpp.o
[ 8%] Building CUDA object CMakeFiles/cudf_base.dir/src/copying/concatenate.cu.o
[ 8%] Building CUDA object CMakeFiles/cudf_base.dir/src/copying/contiguous_split.cu.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/aggregation/aggregation.cpp
├─ generating make dependencies file... done.
├─ preprocessed: T8m5Fbjp7IdFtenBZStdb9hhEv3wtoV6jwow0TZEjliw00012445
├─ compiled: TzbzPpqppN84F_ZQBfN.UxSUxwGKbWE1VxpNUKd1Lwos00000578
├─ assembled: TI3A4G6Eac8jHH18jArZnZ0Ts_Yzo6rhLJXNWqgjYzhg0000055e
╰╼ output: CMakeFiles/cudf_base.dir/src/aggregation/aggregation.cpp.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/aggregation/result_cache.cpp
├─ generating make dependencies file... done.
├─ preprocessed: Tfn0cPGEmsybonU7CCUFC_khO3Is3CwLZnhhxRvpNX8s000157d5
├─ compiled: TsWWwwTqBuxRHSKflN8.ZJmGRz8pMa.vc1ybPxYsJgOc00000578
├─ assembled: TtcDeQcZ5pWAe4_sFARigvB5imfCkgcXXN.10nCfBepc0000055f
╰╼ output: CMakeFiles/cudf_base.dir/src/aggregation/result_cache.cpp.o
[ 9%] Building CXX object CMakeFiles/cudf_base.dir/src/copying/copy.cpp.o
[ 9%] Building CUDA object CMakeFiles/cudf_base.dir/src/copying/copy.cu.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/column/column_factories.cpp
├─ generating make dependencies file... done.
├─ preprocessed: T_0vkU.XO0Cnq3LfawvjQ13xM9k66v21wZFYxnyxNU4k0001a37b
├─ compiled: TKWGQ4e2GLrj0FGHmwRR9VO3v.IV6ExefN6iLjzvpres00000578
├─ assembled: TlQEZmFekdP8FMG2_4GvLqlcQmDFKEKx2mh0TrlmEZjQ0000055e
╰╼ output: CMakeFiles/cudf_base.dir/src/column/column_factories.cpp.o
[ 10%] Building CUDA object CMakeFiles/cudf_base.dir/src/copying/copy_range.cu.o
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/column/column_view.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TK9pH5MbIpeEEEDAH22dSH5NG8S7yOkkNR96lrm5FC8I0001553f
├─ compiled: TjB.GFhiBDGfksdfXDV2iaQnH0EBs0LRK8QckWWRpux800000578
├─ assembled: TJvZnLAA9m8mwIDd9C0U7kl6yabo1__N6in.u39WZw9Q00000559
╰╼ output: CMakeFiles/cudf_base.dir/src/column/column_view.cpp.o
[ 10%] Building CUDA object CMakeFiles/cudf_base.dir/src/copying/gather.cu.o
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/binaryop/compiled/binary_ops.cu
├─ generating make dependencies file... done.
├─ preprocessed: TISA4G.yeWX9TFIEpq8DluSy3HnjCBJF9mo87gWWKK4Y0001fa57
╰╼ output: /tmp/tmpxft_00048e67_00000000-7_binary_ops.cpp1.ii
/tmp/tmpxft_00048e67_00000000-7_binary_ops.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048e67_00000000-7_binary_ops.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048e67_00000000-7_binary_ops.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/binaryop/compiled/binary_ops.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:134: CMakeFiles/cudf_base.dir/src/binaryop/compiled/binary_ops.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/column/column.cu
├─ generating make dependencies file... done.
├─ preprocessed: TMIb0TyUgcXjt7Jvb2lM.J4AGHJeLOGBi3Yx7_pJdecA000201ab
╰╼ output: /tmp/tmpxft_00048e7e_00000000-7_column.cpp1.ii
/tmp/tmpxft_00048e7e_00000000-7_column.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048e7e_00000000-7_column.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048e7e_00000000-7_column.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/column/column.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:199: CMakeFiles/cudf_base.dir/src/column/column.cu.o] Error 1
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/column/column_device_view.cu
├─ generating make dependencies file... done.
├─ preprocessed: Tsc.5zPM4x8iQZNYNH0rkAg_EPAW9TABgLP0FLQFtOWo0001f709
╰╼ output: /tmp/tmpxft_00048e60_00000000-7_column_device_view.cpp1.ii
/tmp/tmpxft_00048e60_00000000-7_column_device_view.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048e60_00000000-7_column_device_view.cpp1.ii(2): warning: a user-provided literal suffix must begin with "_"
/tmp/tmpxft_00048e60_00000000-7_column_device_view.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048e60_00000000-7_column_device_view.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/column/column_device_view.cu".
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/aggregation/aggregation.cu
├─ generating make dependencies file... done.
├─ preprocessed: TowGqrCEfpkqKw8xcoxeYJctohSxVjh2lefMgpC7KWdQ0001fb25
╰╼ output: /tmp/tmpxft_00048e69_00000000-7_aggregation.cpp1.ii
/tmp/tmpxft_00048e69_00000000-7_aggregation.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048e69_00000000-7_aggregation.cpp1.ii(2): error: this declaration has no storage class or type specifier
At end of source: error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/aggregation/aggregation.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:212: CMakeFiles/cudf_base.dir/src/column/column_device_view.cu.o] Error 1
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:95: CMakeFiles/cudf_base.dir/src/aggregation/aggregation.cu.o] Error 1
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/binaryop/binaryop.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TUXOI9qVHbfEOB5H8ZBHRX5Hzsl8m.u1lpTJyfOLojeU00023e6f
├─ compiled: TNu6rADs67GSxHvd_ILHwVU4uN.11v.zuaRsDSYSuDXM00000578
├─ assembled: TwqAz0MwobvCvpzNhI.OWS9PbAiq57ZEXvYCHdghKkxk00000558
╰╼ output: CMakeFiles/cudf_base.dir/src/binaryop/binaryop.cpp.o
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/bitmask/null_mask.cu
├─ generating make dependencies file... done.
├─ preprocessed: TZP4SI0MW4GzgBlhEs0doF1KgKOteExBMSW2ziebhEAk000210f5
╰╼ output: /tmp/tmpxft_00048e8c_00000000-7_null_mask.cpp1.ii
/tmp/tmpxft_00048e8c_00000000-7_null_mask.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048e8c_00000000-7_null_mask.cpp1.ii(2): error: this declaration has no storage class or type specifier
At end of source: error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/bitmask/null_mask.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:186: CMakeFiles/cudf_base.dir/src/bitmask/null_mask.cu.o] Error 1
╭╼ generating model for g++
├╼ input: /home/rou/src/cudf/cpp/src/copying/copy.cpp
├─ generating make dependencies file... done.
├─ preprocessed: TuIZJlrrRxHrRs7O7kg4ujEhNf6k5GCu1Y61RJ6jL6600001a131
├─ compiled: TOIKBbrjSJofVggfPXjgt3syuxC6pLjcSRR2fbadhyjI00000578
├─ assembled: TDPo.5cV149qDRXa4Tm0bIckXI1vmWPHH0VOZ4VN9eqw00000553
╰╼ output: CMakeFiles/cudf_base.dir/src/copying/copy.cpp.o
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/copying/concatenate.cu
├─ generating make dependencies file... done.
├─ preprocessed: T.DfvRv3YmfevK8mMp6YXWqWsAK5P2yTjioZOEBM1i0Q00021a75
╰╼ output: /tmp/tmpxft_00048ecd_00000000-7_concatenate.cpp1.ii
/tmp/tmpxft_00048ecd_00000000-7_concatenate.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048ecd_00000000-7_concatenate.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048ecd_00000000-7_concatenate.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/copying/concatenate.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:251: CMakeFiles/cudf_base.dir/src/copying/concatenate.cu.o] Error 1
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/copying/contiguous_split.cu
├─ generating make dependencies file... done.
├─ preprocessed: TpulysKgDw1JgvllYOka2.NRHdx1KBdmDve5z8JeZxNA00020e6c
╰╼ output: /tmp/tmpxft_00048ec8_00000000-7_contiguous_split.cpp1.ii
/tmp/tmpxft_00048ec8_00000000-7_contiguous_split.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048ec8_00000000-7_contiguous_split.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048ec8_00000000-7_contiguous_split.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/copying/contiguous_split.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:264: CMakeFiles/cudf_base.dir/src/copying/contiguous_split.cu.o] Error 1
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/copying/copy_range.cu
├─ generating make dependencies file... done.
├─ preprocessed: TtxYL84qNIgEuGSEDSY7AZZZ1gIbUq0VXAo6BYRmmQAg000212bb
╰╼ output: /tmp/tmpxft_00048eef_00000000-7_copy_range.cpp1.ii
/tmp/tmpxft_00048eef_00000000-7_copy_range.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048eef_00000000-7_copy_range.cpp1.ii(2): error: this declaration has no storage class or type specifier
At end of source: error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/copying/copy_range.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:303: CMakeFiles/cudf_base.dir/src/copying/copy_range.cu.o] Error 1
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/copying/copy.cu
├─ generating make dependencies file... done.
├─ preprocessed: TBzSBD6l._PFvuCK41cM3Q7BmxXAeMXKquAdPVTUvahQ00021191
╰╼ output: /tmp/tmpxft_00048efd_00000000-7_copy.cpp1.ii
/tmp/tmpxft_00048efd_00000000-7_copy.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048efd_00000000-7_copy.cpp1.ii(2): error: this declaration has no storage class or type specifier
/tmp/tmpxft_00048efd_00000000-7_copy.cpp1.ii(2): error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/copying/copy.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:290: CMakeFiles/cudf_base.dir/src/copying/copy.cu.o] Error 1
╭╼ generating model for gcc
╰╼ output is stdout, executing gcc...
╭╼ generating model for gcc
├╼ input: /home/rou/src/cudf/cpp/src/copying/gather.cu
├─ generating make dependencies file... done.
├─ preprocessed: TAUKPtpRC1FaVrOHwiwa_iGjXY1eJbU1xmO9vdYh41iQ00021db1
╰╼ output: /tmp/tmpxft_00048f02_00000000-7_gather.cpp1.ii
/tmp/tmpxft_00048f02_00000000-7_gather.cpp1.ii(1): error: unrecognized preprocessing directive
/tmp/tmpxft_00048f02_00000000-7_gather.cpp1.ii(2): error: this declaration has no storage class or type specifier
At end of source: error: expected a ";"
3 errors detected in the compilation of "/home/rou/src/cudf/cpp/src/copying/gather.cu".
make[2]: *** [CMakeFiles/cudf_base.dir/build.make:316: CMakeFiles/cudf_base.dir/src/copying/gather.cu.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:469: CMakeFiles/cudf_base.dir/all] Error 2
make: *** [Makefile:149: all] Error 2 |
Not sure how much effort it would take to support compiling CUDA code. Writing a new model for
nvcc
and friends?The text was updated successfully, but these errors were encountered: