Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 705712 | Differences between
and this patch

Collapse All | Expand All

(-)file_not_specified_in_diff (-73 / +85 lines)
Line  Link Here
0
-- a/third_party/gpus/rocm_configure.bzl
0
++ b/third_party/gpus/rocm_configure.bzl
Lines 30-36 Link Here
30
30
31
_DEFAULT_ROCM_VERSION = ""
31
_DEFAULT_ROCM_VERSION = ""
32
_DEFAULT_MIOPEN_VERSION = ""
32
_DEFAULT_MIOPEN_VERSION = ""
33
_DEFAULT_ROCM_TOOLKIT_PATH = "/opt/rocm"
33
_DEFAULT_ROCM_TOOLKIT_PATH = "/usr"
34
_DEFAULT_ROCM_AMDGPU_TARGETS = ["gfx803", "gfx900"]
34
_DEFAULT_ROCM_AMDGPU_TARGETS = ["gfx803", "gfx900"]
35
35
36
def verify_build_defines(params):
36
def verify_build_defines(params):
Lines 169-175 Link Here
169
    inc_dirs = get_cxx_inc_directories(repository_ctx, cc)
169
    inc_dirs = get_cxx_inc_directories(repository_ctx, cc)
170
170
171
    # Add numpy headers
171
    # Add numpy headers
172
    inc_dirs.append("/usr/lib/python2.7/dist-packages/numpy/core/include")
172
    inc_dirs.append("/usr/lib64/python3.6/site-packages/numpy/core/include/numpy")
173
173
174
    return inc_dirs
174
    return inc_dirs
175
175
Lines 191-241 Link Here
191
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include")
191
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include")
192
192
193
    # Add HSA headers
193
    # Add HSA headers
194
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hsa/include")
194
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/hsa")
195
195
196
    # Add HIP headers
196
    # Add HIP headers
197
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/hip")
197
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/lib/hip/include/hip")
198
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/hip/hcc_detail")
198
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/lib/hip/include/hip/hcc_detail")
199
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hip/include")
199
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/lib/hip/include")
200
201
    # Add HIP-Clang headers
202
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/llvm/lib/clang/8.0/include")
203
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/llvm/lib/clang/9.0.0/include")
204
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/llvm/lib/clang/10.0.0/include")
205
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/llvm/lib/clang/11.0.0/include")
206
200
207
    # Add rocrand and hiprand headers
201
    # Add rocrand and hiprand headers
208
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/rocrand/include")
202
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/rocrand")
209
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hiprand/include")
203
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/hiprand")
210
204
211
    # Add rocfft headers
205
    # Add rocfft headers
212
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/rocfft/include")
206
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/rocFFT")
213
207
214
    # Add rocBLAS headers
208
    # Add rocBLAS headers
215
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/rocblas/include")
209
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/rocblas")
216
210
217
    # Add MIOpen headers
211
    # Add MIOpen headers
218
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/miopen/include")
212
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/include/miopen")
219
220
    # Add RCCL headers
221
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/rccl/include")
222
213
223
    # Add hcc headers
214
    # Add hcc headers
224
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/include")
215
    inc_dirs.append("/usr/lib/hcc/3.0/include")
225
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/compiler/lib/clang/7.0.0/include/")
216
    inc_dirs.append("/usr/lib/hcc/3.0/lib/clang/10.0.0/include")
226
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/lib/clang/7.0.0/include")
227
228
    # Newer hcc builds use/are based off of clang 8.0.0.
229
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/compiler/lib/clang/8.0.0/include/")
230
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/lib/clang/8.0.0/include")
231
232
    # Support hcc based off clang 9.0.0, included in ROCm2.2
233
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/compiler/lib/clang/9.0.0/include/")
234
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/lib/clang/9.0.0/include")
235
236
    # Support hcc based off clang 10.0.0, included in ROCm2.8
237
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/compiler/lib/clang/10.0.0/include/")
238
    inc_dirs.append(rocm_config.rocm_toolkit_path + "/hcc/lib/clang/10.0.0/include")
239
217
240
    return inc_dirs
218
    return inc_dirs
241
219
Lines 317-326 Link Here
317
        if name in repository_ctx.os.environ:
296
        if name in repository_ctx.os.environ:
318
            return "True"
297
            return "True"
319
298
320
    # grep for "HIP_COMPILER=clang" in /opt/rocm/hip/lib/.hipInfo
299
    # grep for "HIP_COMPILER=clang" in /usr/lib/hip/lib/.hipInfo
321
    grep_result = _execute(
300
    grep_result = _execute(
322
        repository_ctx,
301
        repository_ctx,
323
        ["grep", "HIP_COMPILER=clang", rocm_config.rocm_toolkit_path + "/hip/lib/.hipInfo"],
302
        ["grep", "HIP_COMPILER=clang", rocm_config.rocm_toolkit_path + "/lib/hip/lib/.hipInfo"],
324
        empty_stdout_fine = True,
303
        empty_stdout_fine = True,
325
    )
304
    )
326
    result = grep_result.stdout.strip()
305
    result = grep_result.stdout.strip()
Lines 453-489 Link Here
453
        "hip": _find_rocm_lib(
432
        "hip": _find_rocm_lib(
454
            "hip_hcc",
433
            "hip_hcc",
455
            repository_ctx,
434
            repository_ctx,
456
            rocm_config.rocm_toolkit_path,
435
            rocm_config.rocm_toolkit_path + "/lib/hip/lib",
457
        ),
436
        ),
458
        "rocblas": _find_rocm_lib(
437
        "rocblas": _find_rocm_lib(
459
            "rocblas",
438
            "rocblas",
460
            repository_ctx,
439
            repository_ctx,
461
            rocm_config.rocm_toolkit_path + "/rocblas",
440
            rocm_config.rocm_toolkit_path + "/lib64",
462
        ),
441
        ),
463
        "rocfft": _find_rocm_lib(
442
        "rocfft": _find_rocm_lib(
464
            "rocfft",
443
            "rocfft",
465
            repository_ctx,
444
            repository_ctx,
466
            rocm_config.rocm_toolkit_path + "/rocfft",
445
            rocm_config.rocm_toolkit_path + "/lib64",
467
        ),
446
        ),
468
        "hiprand": _find_rocm_lib(
447
        "hiprand": _find_rocm_lib(
469
            "hiprand",
448
            "hiprand",
470
            repository_ctx,
449
            repository_ctx,
471
            rocm_config.rocm_toolkit_path + "/hiprand",
450
            rocm_config.rocm_toolkit_path + "/lib64",
472
        ),
451
        ),
473
        "miopen": _find_rocm_lib(
452
        "miopen": _find_rocm_lib(
474
            "MIOpen",
453
            "MIOpen",
475
            repository_ctx,
454
            repository_ctx,
476
            rocm_config.rocm_toolkit_path + "/miopen",
455
            rocm_config.rocm_toolkit_path + "/lib64",
477
        ),
456
        ),
478
        "rccl": _find_rocm_lib(
457
        "rccl": _find_rocm_lib(
479
            "rccl",
458
            "rccl",
480
            repository_ctx,
459
            repository_ctx,
481
            rocm_config.rocm_toolkit_path + "/rccl",
460
            rocm_config.rocm_toolkit_path + "/lib64",
482
        ),
461
        ),
483
        "hipsparse": _find_rocm_lib(
462
        "hipsparse": _find_rocm_lib(
484
            "hipsparse",
463
            "hipsparse",
485
            repository_ctx,
464
            repository_ctx,
486
            rocm_config.rocm_toolkit_path + "/hipsparse",
465
            rocm_config.rocm_toolkit_path + "/lib64",
487
        ),
466
        ),
488
    }
467
    }
489
468
Lines 683-724 Link Here
683
    copy_rules = [
662
    copy_rules = [
684
        make_copy_dir_rule(
663
        make_copy_dir_rule(
685
            repository_ctx,
664
            repository_ctx,
686
            name = "rocm-include",
665
            name = "rocfft-include",
687
            src_dir = rocm_toolkit_path + "/include",
666
            src_dir = rocm_toolkit_path + "/include/rocFFT",
667
            out_dir = "rocm/include/rocfft",
668
        ),
669
        make_copy_dir_rule(
670
            repository_ctx,
671
            name = "rocblas-include",
672
            src_dir = rocm_toolkit_path + "/include/rocblas",
673
            out_dir = "rocm/include/rocblas",
674
        ),
675
        make_copy_dir_rule(
676
            repository_ctx,
677
            name = "rocblas-include-link",
678
            src_dir = rocm_toolkit_path + "/include/rocblas",
688
            out_dir = "rocm/include",
679
            out_dir = "rocm/include",
689
        ),
680
         ),
690
        make_copy_dir_rule(
681
        make_copy_dir_rule(
691
            repository_ctx,
682
            repository_ctx,
692
            name = "rocfft-include",
683
            name = "miopen-include",
693
            src_dir = rocm_toolkit_path + "/rocfft/include",
684
            src_dir = rocm_toolkit_path + "/include/miopen",
694
            out_dir = "rocm/include/rocfft",
685
            out_dir = "rocm/include/miopen",
695
        ),
686
        ),
696
        make_copy_dir_rule(
687
        make_copy_dir_rule(
697
            repository_ctx,
688
            repository_ctx,
698
            name = "rocblas-include",
689
            name = "hipsparse-include",
699
            src_dir = rocm_toolkit_path + "/rocblas/include",
690
            src_dir = rocm_toolkit_path + "/include/hipsparse",
700
            out_dir = "rocm/include/rocblas",
691
            out_dir = "rocm/include/hipsparse",
701
        ),
692
        ),
702
        make_copy_dir_rule(
693
        make_copy_dir_rule(
703
            repository_ctx,
694
            repository_ctx,
704
            name = "miopen-include",
695
            name = "hipcub-include",
705
            src_dir = rocm_toolkit_path + "/miopen/include",
696
            src_dir = rocm_toolkit_path + "/include/hipcub",
706
            out_dir = "rocm/include/miopen",
697
            out_dir = "rocm/include/hipcub",
707
        ),
698
        ),
708
        make_copy_dir_rule(
699
        make_copy_dir_rule(
709
            repository_ctx,
700
            repository_ctx,
710
            name = "rccl-include",
701
            name = "hip-include",
711
            src_dir = rocm_toolkit_path + "/rccl/include",
702
            src_dir = rocm_toolkit_path + "/lib/hip/include/hip",
712
            out_dir = "rocm/include/rccl",
703
            out_dir = "rocm/include/hip",
713
        ),
714
        make_copy_dir_rule(
715
            repository_ctx,
716
            name = "hipsparse-include",
717
            src_dir = rocm_toolkit_path + "/hipsparse/include",
718
            out_dir = "rocm/include/hipsparse",
719
        ),
704
        ),
720
    ]
705
    ]
721
706
707
    # Copy required include files
708
    copy_rules.append(make_copy_files_rule(
709
    repository_ctx,
710
    name = "files",
711
        srcs = [
712
            "/usr/include/rccl.h",
713
            "/usr/include/rocprim/rocprim_version.hpp",
714
            "/usr/include/hiprand/hiprand.h",
715
            "/usr/include/hiprand/hiprand_version.h",
716
            "/usr/include/hiprand/hiprand_hcc.h",
717
            "/usr/include/rocrand/rocrand.h",
718
            "/usr/include/rocrand/rocrand_discrete_types.h",
719
            "/usr/include/rocrand/rocrand_version.h",
720
        ],
721
        outs = [
722
            "rocm/include/rccl/rccl.h",
723
            "rocm/include/rocprim/rocprim_version.hpp",
724
            "rocm/include/hiprand/hiprand.h",
725
            "rocm/include/hiprand/hiprand_version.h",
726
            "rocm/include/hiprand/hiprand_hcc.h",
727
            "rocm/include/rocrand/rocrand.h",
728
            "rocm/include/rocrand/rocrand_discrete_types.h",
729
            "rocm/include/rocrand/rocrand_version.h",
730
        ],
731
    ))
732
    
722
    rocm_libs = _find_libs(repository_ctx, rocm_config)
733
    rocm_libs = _find_libs(repository_ctx, rocm_config)
723
    rocm_lib_srcs = []
734
    rocm_lib_srcs = []
724
    rocm_lib_outs = []
735
    rocm_lib_outs = []
Lines 756-766 Link Here
756
            "%{rccl_lib}": rocm_libs["rccl"].file_name,
767
            "%{rccl_lib}": rocm_libs["rccl"].file_name,
757
            "%{hipsparse_lib}": rocm_libs["hipsparse"].file_name,
768
            "%{hipsparse_lib}": rocm_libs["hipsparse"].file_name,
758
            "%{copy_rules}": "\n".join(copy_rules),
769
            "%{copy_rules}": "\n".join(copy_rules),
759
            "%{rocm_headers}": ('":rocm-include",\n' +
770
            "%{rocm_headers}": ('":files",\n' +
760
                                '":rocfft-include",\n' +
771
                                '":rocfft-include",\n' +
761
                                '":rocblas-include",\n' +
772
                                '":rocblas-include",\n' +
762
                                '":miopen-include",\n' +
773
                                '":miopen-include",\n' +
763
                                '":rccl-include",\n' +
774
                                '":hip-include",\n' +
775
                                '":hipcub-include",\n' +
776
                                '":rocblas-include-link",\n' +
764
                                '":hipsparse-include",'),
777
                                '":hipsparse-include",'),
765
        },
778
        },
766
    )
779
    )
Lines 779-785 Link Here
779
792
780
    rocm_defines["%{host_compiler_prefix}"] = host_compiler_prefix
793
    rocm_defines["%{host_compiler_prefix}"] = host_compiler_prefix
781
794
782
    rocm_defines["%{linker_bin_path}"] = rocm_config.rocm_toolkit_path + "/hcc/compiler/bin"
795
    rocm_defines["%{linker_bin_path}"] = rocm_config.rocm_toolkit_path + "/lib/hcc/3.0/bin"
783
796
784
    # For gcc, do not canonicalize system header paths; some versions of gcc
797
    # For gcc, do not canonicalize system header paths; some versions of gcc
785
    # pick the shortest possible path for system includes when creating the
798
    # pick the shortest possible path for system includes when creating the
Lines 832-845 Link Here
832
        "crosstool:clang/bin/crosstool_wrapper_driver_rocm",
845
        "crosstool:clang/bin/crosstool_wrapper_driver_rocm",
833
        {
846
        {
834
            "%{cpu_compiler}": str(cc),
847
            "%{cpu_compiler}": str(cc),
835
            "%{hipcc_path}": rocm_config.rocm_toolkit_path + "/bin/hipcc",
848
            "%{hipcc_path}": rocm_config.rocm_toolkit_path + "/lib/hcc/3.0/bin/hcc",
836
            "%{hipcc_env}": _hipcc_env(repository_ctx),
849
            "%{hipcc_env}": _hipcc_env(repository_ctx),
837
            "%{hipcc_is_hipclang}": _hipcc_is_hipclang(repository_ctx, rocm_config),
850
            "%{hipcc_is_hipclang}": _hipcc_is_hipclang(repository_ctx, rocm_config),
838
            "%{rocr_runtime_path}": rocm_config.rocm_toolkit_path + "/lib",
851
            "%{rocr_runtime_path}": rocm_config.rocm_toolkit_path + "/lib64",
839
            "%{rocr_runtime_library}": "hsa-runtime64",
852
            "%{rocr_runtime_library}": "hsa-runtime64",
840
            "%{hip_runtime_path}": rocm_config.rocm_toolkit_path + "/hip/lib",
853
            "%{hip_runtime_path}": rocm_config.rocm_toolkit_path + "/lib/hip/lib",
841
            "%{hip_runtime_library}": "hip_hcc",
854
            "%{hip_runtime_library}": "hip_hcc",
842
            "%{hcc_runtime_path}": rocm_config.rocm_toolkit_path + "/hcc/lib",
855
            "%{hcc_runtime_path}": rocm_config.rocm_toolkit_path + "/lib/hcc/3.0/lib",
843
            "%{hcc_runtime_library}": "mcwamp",
856
            "%{hcc_runtime_library}": "mcwamp",
844
            "%{crosstool_verbose}": _crosstool_verbose(repository_ctx),
857
            "%{crosstool_verbose}": _crosstool_verbose(repository_ctx),
845
            "%{gcc_host_compiler_path}": str(cc),
858
            "%{gcc_host_compiler_path}": str(cc),

Return to bug 705712