FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
tvm/python/setup.py at master · ImageHandler/tvm · GitHub
ImageHandler
/
tvm
Public
forked from
apache/tvm
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
tvm
/
python
/
setup.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
145 lines (129 loc) · 4.44 KB
Breadcrumbs
tvm
/
python
/
setup.py
Copy path
File metadata and controls
145 lines (129 loc) · 4.44 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# pylint: disable=invalid-name, exec-used
"""Setup TVM package."""
from
__future__
import
absolute_import
import
os
import
shutil
import
sys
import
sysconfig
import
platform
from
setuptools
import
find_packages
from
setuptools
.
dist
import
Distribution
# need to use distutils.core for correct placement of cython dll
if
"--inplace"
in
sys
.
argv
:
from
distutils
.
core
import
setup
from
distutils
.
extension
import
Extension
else
:
from
setuptools
import
setup
from
setuptools
.
extension
import
Extension
CURRENT_DIR
=
os
.
path
.
dirname
(
__file__
)
def
get_lib_path
():
"""Get library path, name and version"""
# We can not import `libinfo.py` in setup.py directly since __init__.py
# Will be invoked which introduces dependences
libinfo_py
=
os
.
path
.
join
(
CURRENT_DIR
,
'./tvm/_ffi/libinfo.py'
)
libinfo
=
{
'__file__'
:
libinfo_py
}
exec
(
compile
(
open
(
libinfo_py
,
"rb"
).
read
(),
libinfo_py
,
'exec'
),
libinfo
,
libinfo
)
version
=
libinfo
[
'__version__'
]
if
not
os
.
getenv
(
'CONDA_BUILD'
):
lib_path
=
libinfo
[
'find_lib_path'
]()
libs
=
[
lib_path
[
0
]]
if
libs
[
0
].
find
(
"runtime"
)
==
-
1
:
for
name
in
lib_path
[
1
:]:
if
name
.
find
(
"runtime"
)
!=
-
1
:
libs
.
append
(
name
)
break
else
:
libs
=
None
return
libs
,
version
LIB_LIST
,
__version__
=
get_lib_path
()
def
config_cython
():
"""Try to configure cython and return cython configuration"""
if
os
.
name
==
'nt'
:
print
(
"WARNING: Cython is not supported on Windows, will compile without cython module"
)
return
[]
sys_cflags
=
sysconfig
.
get_config_var
(
"CFLAGS"
)
if
"i386"
in
sys_cflags
and
"x86_64"
in
sys_cflags
:
print
(
"WARNING: Cython library may not be compiled correctly with both i386 and x64"
)
return
[]
try
:
from
Cython
.
Build
import
cythonize
# from setuptools.extension import Extension
if
sys
.
version_info
>=
(
3
,
0
):
subdir
=
"_cy3"
else
:
subdir
=
"_cy2"
ret
=
[]
path
=
"tvm/_ffi/_cython"
if
os
.
name
==
'nt'
:
library_dirs
=
[
'tvm'
,
'../build/Release'
,
'../build'
]
libraries
=
[
'libtvm'
]
else
:
library_dirs
=
None
libraries
=
None
for
fn
in
os
.
listdir
(
path
):
if
not
fn
.
endswith
(
".pyx"
):
continue
ret
.
append
(
Extension
(
"tvm._ffi.%s.%s"
%
(
subdir
,
fn
[:
-
4
]),
[
"tvm/_ffi/_cython/%s"
%
fn
],
include_dirs
=
[
"../include/"
,
"../3rdparty/dmlc-core/include"
,
"../3rdparty/dlpack/include"
,
],
library_dirs
=
library_dirs
,
libraries
=
libraries
,
language
=
"c++"
))
return
cythonize
(
ret
)
except
ImportError
:
print
(
"WARNING: Cython is not installed, will compile without cython module"
)
return
[]
class
BinaryDistribution
(
Distribution
):
def
has_ext_modules
(
self
):
return
True
def
is_pure
(
self
):
return
False
include_libs
=
False
wheel_include_libs
=
False
if
not
os
.
getenv
(
'CONDA_BUILD'
):
if
"bdist_wheel"
in
sys
.
argv
:
wheel_include_libs
=
True
else
:
include_libs
=
True
setup_kwargs
=
{}
# For bdist_wheel only
if
wheel_include_libs
:
with
open
(
"MANIFEST.in"
,
"w"
)
as
fo
:
for
path
in
LIB_LIST
:
shutil
.
copy
(
path
,
os
.
path
.
join
(
CURRENT_DIR
,
'tvm'
))
_
,
libname
=
os
.
path
.
split
(
path
)
fo
.
write
(
"include tvm/%s
\n
"
%
libname
)
setup_kwargs
=
{
"include_package_data"
:
True
}
if
include_libs
:
curr_path
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
os
.
path
.
expanduser
(
__file__
)))
for
i
,
path
in
enumerate
(
LIB_LIST
):
LIB_LIST
[
i
]
=
os
.
path
.
relpath
(
path
,
curr_path
)
setup_kwargs
=
{
"include_package_data"
:
True
,
"data_files"
: [(
'tvm'
,
LIB_LIST
)]
}
setup
(
name
=
'tvm'
,
version
=
__version__
,
description
=
"TVM: An End to End Tensor IR/DSL Stack for Deep Learning Systems"
,
zip_safe
=
False
,
install_requires
=
[
'numpy'
,
'decorator'
,
],
packages
=
find_packages
(),
distclass
=
BinaryDistribution
,
url
=
'https://github.com/dmlc/tvm'
,
ext_modules
=
config_cython
(),
**
setup_kwargs
)
if
wheel_include_libs
:
# Wheel cleanup
os
.
remove
(
"MANIFEST.in"
)
for
path
in
LIB_LIST
:
_
,
libname
=
os
.
path
.
split
(
path
)
os
.
remove
(
"tvm/%s"
%
libname
)
Back
|
FazBrowse Home
|
New Git URL