Skip to content

Commit 1a92802

Browse files
Ilia Cherniavskiifacebook-github-bot
Ilia Cherniavskii
authored andcommitted
Set USE_KINETO=1 (pytorch#49201)
Summary: Pull Request resolved: pytorch#49201 This unblocks kineto profiler for 1.8 release. This PR supercedes pytorch#48391 Note: this will somewhat increase the size of linux server binaries, bc we add libkineto.a and libcupti_static.a: -rw-r--r-- 1 jenkins jenkins 1107502 Dec 10 21:16 build/lib/libkineto.a -rw-r--r-- 1 root root 13699658 Nov 13 2019 /usr/local/cuda/lib64/libcupti_static.a Test Plan: CI pytorch#48391 Imported from OSS Reviewed By: ngimel Differential Revision: D25480770 fbshipit-source-id: 037cd774f5547d9918d6055ef5cc952a54e48e4c
1 parent 020c443 commit 1a92802

File tree

4 files changed

+65
-56
lines changed

4 files changed

+65
-56
lines changed

CMakeLists.txt

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ cmake_dependent_option(
159159
USE_STATIC_CUDNN "Use cuDNN static libraries" OFF
160160
"USE_CUDNN" OFF)
161161
option(USE_FBGEMM "Use FBGEMM (quantized 8-bit server operators)" ON)
162-
option(USE_KINETO "Use Kineto profiling library" OFF)
162+
option(USE_KINETO "Use Kineto profiling library" ON)
163+
option(USE_CUPTI_SO "Use CUPTI as a shared library" OFF)
163164
option(USE_FAKELOWP "Use FakeLowp operators" OFF)
164165
option(USE_FFMPEG "Use ffmpeg" OFF)
165166
option(USE_GFLAGS "Use GFLAGS" OFF)
@@ -515,31 +516,12 @@ if(USE_FBGEMM AND ((CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND CMAKE_SIZEOF_VO
515516
set(USE_FBGEMM OFF)
516517
endif()
517518

518-
if(USE_KINETO AND INTERN_BUILD_MOBILE)
519-
message(STATUS "Not using libkineto in a mobile build.")
520-
set(USE_KINETO OFF)
521-
endif()
522-
523-
if(USE_KINETO AND (NOT USE_CUDA))
524-
message(STATUS "Not using libkineto in a non-CUDA build.")
525-
set(USE_KINETO OFF)
526-
endif()
527-
528-
if(USE_KINETO AND MSVC)
529-
message(STATUS "Not using libkineto in a Windows build.")
530-
set(USE_KINETO OFF)
531-
endif()
532-
533519
include(cmake/Dependencies.cmake)
534520

535521
if(USE_FBGEMM)
536522
string(APPEND CMAKE_CXX_FLAGS " -DUSE_FBGEMM")
537523
endif()
538524

539-
if(USE_KINETO)
540-
string(APPEND CMAKE_CXX_FLAGS " -DUSE_KINETO")
541-
endif()
542-
543525
if(USE_QNNPACK)
544526
string(APPEND CMAKE_CXX_FLAGS " -DUSE_QNNPACK")
545527
endif()

cmake/Dependencies.cmake

Lines changed: 60 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1788,43 +1788,70 @@ list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
17881788
set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
17891789

17901790
# ---[ Kineto
1791+
if(USE_KINETO AND INTERN_BUILD_MOBILE)
1792+
message(STATUS "Not using libkineto in a mobile build.")
1793+
set(USE_KINETO OFF)
1794+
endif()
1795+
1796+
if(USE_KINETO AND (NOT USE_CUDA))
1797+
message(STATUS "Not using libkineto in a non-CUDA build.")
1798+
set(USE_KINETO OFF)
1799+
endif()
1800+
1801+
if(USE_KINETO AND MSVC)
1802+
message(STATUS "Not using libkineto in a Windows build.")
1803+
set(USE_KINETO OFF)
1804+
endif()
17911805
if(USE_KINETO)
1792-
if(USE_KINETO AND NOT TARGET kineto)
1793-
set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party" CACHE STRING "")
1794-
set(KINETO_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/kineto/libkineto" CACHE STRING "")
1795-
set(KINETO_BUILD_TESTS OFF CACHE BOOL "")
1796-
set(KINETO_LIBRARY_TYPE "static" CACHE STRING "")
1797-
set(CUDA_SOURCE_DIR "${CUDA_TOOLKIT_ROOT_DIR}" CACHE STRING "")
1798-
1799-
message(STATUS "Configuring Kineto dependency:")
1800-
message(STATUS " KINETO_SOURCE_DIR = ${KINETO_SOURCE_DIR}")
1801-
message(STATUS " KINETO_BUILD_TESTS = ${KINETO_BUILD_TESTS}")
1802-
message(STATUS " KINETO_LIBRARY_TYPE = ${KINETO_LIBRARY_TYPE}")
1803-
message(STATUS " CUDA_SOURCE_DIR = ${CUDA_SOURCE_DIR}")
1804-
1805-
if(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/include)
1806-
set(CUPTI_INCLUDE_DIR "${CUDA_SOURCE_DIR}/extras/CUPTI/include")
1807-
elseif(EXISTS ${CUDA_SOURCE_DIR}/include/cupti.h)
1808-
set(CUPTI_INCLUDE_DIR "${CUDA_SOURCE_DIR}/include")
1809-
endif()
1810-
1811-
if((NOT DEFINED CUDA_cupti_LIBRARY) OR (${CUDA_cupti_LIBRARY} STREQUAL "CUDA_cupti_LIBRARY-NOTFOUND"))
1812-
if(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti_static.a)
1813-
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti_static.a")
1814-
elseif(EXISTS ${CUDA_SOURCE_DIR}/lib64/libcupti_static.a)
1815-
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/lib64/libcupti_static.a")
1816-
elseif(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti.so)
1817-
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti.so")
1818-
elseif(EXISTS ${CUDA_SOURCE_DIR}/lib64/libcupti.so)
1819-
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/lib64/libcupti.so")
1820-
endif()
1806+
set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party" CACHE STRING "")
1807+
set(KINETO_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/kineto/libkineto" CACHE STRING "")
1808+
set(KINETO_BUILD_TESTS OFF CACHE BOOL "")
1809+
set(KINETO_LIBRARY_TYPE "static" CACHE STRING "")
1810+
set(CUDA_SOURCE_DIR "${CUDA_TOOLKIT_ROOT_DIR}" CACHE STRING "")
1811+
1812+
message(STATUS "Configuring Kineto dependency:")
1813+
message(STATUS " KINETO_SOURCE_DIR = ${KINETO_SOURCE_DIR}")
1814+
message(STATUS " KINETO_BUILD_TESTS = ${KINETO_BUILD_TESTS}")
1815+
message(STATUS " KINETO_LIBRARY_TYPE = ${KINETO_LIBRARY_TYPE}")
1816+
message(STATUS " CUDA_SOURCE_DIR = ${CUDA_SOURCE_DIR}")
1817+
1818+
if(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti_static.a)
1819+
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti_static.a")
1820+
elseif(EXISTS ${CUDA_SOURCE_DIR}/lib64/libcupti_static.a)
1821+
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/lib64/libcupti_static.a")
1822+
elseif(USE_CUPTI_SO)
1823+
if(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti.so)
1824+
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/extras/CUPTI/lib64/libcupti.so")
1825+
elseif(EXISTS ${CUDA_SOURCE_DIR}/lib64/libcupti.so)
1826+
set(CUDA_cupti_LIBRARY "${CUDA_SOURCE_DIR}/lib64/libcupti.so")
1827+
endif()
1828+
endif()
1829+
1830+
if(EXISTS ${CUDA_SOURCE_DIR}/extras/CUPTI/include)
1831+
set(CUPTI_INCLUDE_DIR "${CUDA_SOURCE_DIR}/extras/CUPTI/include")
1832+
elseif(EXISTS ${CUDA_SOURCE_DIR}/include/cupti.h)
1833+
set(CUPTI_INCLUDE_DIR "${CUDA_SOURCE_DIR}/include")
1834+
endif()
1835+
1836+
set(FOUND_CUPTI FALSE)
1837+
if((DEFINED CUPTI_INCLUDE_DIR) AND (DEFINED CUDA_cupti_LIBRARY))
1838+
if((CUDA_cupti_LIBRARY MATCHES "libcupti_static.a") OR ((CUDA_cupti_LIBRARY MATCHES "libcupti.so") AND (USE_CUPTI_SO)))
1839+
set(FOUND_CUPTI TRUE)
18211840
endif()
1841+
endif()
1842+
1843+
if(FOUND_CUPTI)
18221844
message(STATUS " CUDA_cupti_LIBRARY = ${CUDA_cupti_LIBRARY}")
18231845
message(STATUS " CUPTI_INCLUDE_DIR = ${CUPTI_INCLUDE_DIR}")
1846+
if(NOT TARGET kineto)
1847+
add_subdirectory("${KINETO_SOURCE_DIR}")
1848+
message(STATUS "Configured Kineto as a dependency.")
1849+
endif()
18241850

1825-
add_subdirectory("${KINETO_SOURCE_DIR}")
1826-
message(STATUS "Configured Kineto as a dependency.")
1851+
string(APPEND CMAKE_CXX_FLAGS " -DUSE_KINETO")
1852+
list(APPEND Caffe2_DEPENDENCY_LIBS kineto)
1853+
else()
1854+
message(STATUS "Could not find CUPTI library, skipping Kineto build")
1855+
set(USE_KINETO OFF)
18271856
endif()
1828-
1829-
list(APPEND Caffe2_DEPENDENCY_LIBS kineto)
18301857
endif()

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
# USE_FBGEMM=0
3434
# disables the FBGEMM build
3535
#
36-
# USE_KINETO=1
37-
# enables experimental usage of libkineto
36+
# USE_KINETO=0
37+
# disables usage of libkineto library for profiling
3838
#
3939
# USE_NUMPY=0
4040
# disables the NumPy build

torch/csrc/autograd/profiler_kineto.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ void ProfilerResult::save(const std::string& path) {
360360

361361
bool kinetoAvailable() {
362362
#ifdef USE_KINETO
363-
return true;
363+
return at::hasCUDA();
364364
#else
365365
return false;
366366
#endif

0 commit comments

Comments
 (0)