microsoft/onnxruntime-extensions

Public

mirrored fromhttps://github.com/microsoft/onnxruntime-extensionsAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fb2a8c28419f255fcd7283ba14bcac61e721d4e4

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

cmake/ext_cuda.cmake

71lines · modecode

1# Copyright (c) Microsoft Corporation. All rights reserved.
2# Licensed under the MIT License.
3
4enable_language(CUDA)
5
6set(CMAKE_CUDA_RUNTIME_LIBRARY Shared)
7set(CMAKE_CUDA_STANDARD 17)
8
9
10if(NOT CMAKE_CUDA_ARCHITECTURES)
11 if(CMAKE_LIBRARY_ARCHITECTURE STREQUAL "aarch64-linux-gnu")
12 # Support for Jetson/Tegra ARM devices
13 set(CMAKE_CUDA_FLAGS
14 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_53,code=sm_53") # TX1, Nano
15 set(CMAKE_CUDA_FLAGS
16 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_62,code=sm_62") # TX2
17 set(CMAKE_CUDA_FLAGS
18 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_72,code=sm_72") # AGX Xavier,
19 # NX Xavier
20 if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
21 set(CMAKE_CUDA_FLAGS
22 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_87,code=sm_87") # AGX Orin,
23 # NX Orin
24 endif()
25 else()
26 # the following compute capabilities are removed in CUDA 11 Toolkit
27 if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11)
28 set(CMAKE_CUDA_FLAGS
29 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_30,code=sm_30") # K series
30 endif()
31 if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12)
32 # 37, 50 still work in CUDA 11 but are marked deprecated and will be
33 # removed in future CUDA version.
34 set(CMAKE_CUDA_FLAGS
35 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_37,code=sm_37") # K80
36 set(CMAKE_CUDA_FLAGS
37 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_50,code=sm_50") # M series
38 endif()
39 set(CMAKE_CUDA_FLAGS
40 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_52,code=sm_52") # M60
41 set(CMAKE_CUDA_FLAGS
42 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_60,code=sm_60") # P series
43 set(CMAKE_CUDA_FLAGS
44 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_70,code=sm_70") # V series
45 set(CMAKE_CUDA_FLAGS
46 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_75,code=sm_75") # T series
47 if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
48 set(CMAKE_CUDA_FLAGS
49 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_80,code=sm_80") # A series
50 endif()
51 if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
52 set(CMAKE_CUDA_FLAGS
53 "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_90,code=sm_90") # H series
54 endif()
55 endif()
56endif()
57set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr")
58if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
59 set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --Werror default-stream-launch")
60endif()
61
62if(NOT WIN32)
63 list(APPEND CUDA_NVCC_FLAGS --compiler-options -fPIC)
64endif()
65
66# Options passed to cudafe
67set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcudafe \"--diag_suppress=bad_friend_decl\"")
68set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcudafe \"--diag_suppress=unsigned_compare_with_zero\"")
69set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcudafe \"--diag_suppress=expr_has_no_effect\"")
70
71add_compile_definitions(USE_CUDA)
72