v4.0 update. (#2371)
This commit is contained in:
@@ -507,7 +507,8 @@ class Manifest:
|
||||
self.selected_kernels = []
|
||||
self.ignore_kernel_names = []
|
||||
self.exclude_kernel_names = []
|
||||
self.compute_capabilities = [50,]
|
||||
self.compute_capabilities_baseline = [50,]
|
||||
self.compute_capabilities_feature_set = ['50',]
|
||||
self.curr_build_dir = '.'
|
||||
self.filter_by_cc = True
|
||||
|
||||
@@ -518,21 +519,9 @@ class Manifest:
|
||||
# A common user error is to use commas instead of semicolons.
|
||||
if ',' in args.architectures:
|
||||
raise RuntimeError("The list of architectures (CMake option CUTLASS_NVCC_ARCHS) must be semicolon-delimited.\nDon't use commas to separate the architectures; use semicolons.\nYou specified the list as: " + args.architectures)
|
||||
architectures = args.architectures.split(';') if len(args.architectures) else ['50',]
|
||||
|
||||
arch_conditional_cc = [
|
||||
'90a',
|
||||
'100a',
|
||||
'100f',
|
||||
'101a',
|
||||
'101f',
|
||||
'120a',
|
||||
'120f'
|
||||
]
|
||||
architectures = [x if x not in arch_conditional_cc else x.split('a')[0] for x in architectures]
|
||||
architectures = [x if x not in arch_conditional_cc else x.split('f')[0] for x in architectures]
|
||||
|
||||
self.compute_capabilities = [int(x) for x in architectures]
|
||||
|
||||
self.compute_capabilities_feature_set = args.architectures.split(';') if len(args.architectures) else ['50',]
|
||||
self.compute_capabilities_baseline = sorted(set(int(arch.split('a')[0].split('f')[0]) for arch in self.compute_capabilities_feature_set))
|
||||
|
||||
if args.filter_by_cc in ['false', 'False', '0']:
|
||||
self.filter_by_cc = False
|
||||
@@ -597,7 +586,7 @@ class Manifest:
|
||||
return default_level
|
||||
|
||||
|
||||
def get_kernel_filters (self, kernelListFile):
|
||||
def get_kernel_filters(self, kernelListFile):
|
||||
if os.path.isfile(kernelListFile):
|
||||
with open(kernelListFile, 'r') as fileReader:
|
||||
lines = [line.rstrip() for line in fileReader if not line.startswith("#")]
|
||||
@@ -635,7 +624,7 @@ class Manifest:
|
||||
# filter based on compute capability
|
||||
enabled = not (self.filter_by_cc)
|
||||
|
||||
for cc in self.compute_capabilities:
|
||||
for cc in self.compute_capabilities_baseline:
|
||||
|
||||
if cc >= operation.tile_description.minimum_compute_capability and \
|
||||
cc <= operation.tile_description.maximum_compute_capability and \
|
||||
@@ -789,14 +778,14 @@ class Manifest:
|
||||
return name.endswith(".cpp")
|
||||
|
||||
def get_src_archs_str_given_requested_cuda_archs(archs, source_file):
|
||||
intersected_archs = archs & set(self.compute_capabilities)
|
||||
intersected_archs = archs & set(self.compute_capabilities_baseline)
|
||||
if intersected_archs == set():
|
||||
raise RuntimeError(
|
||||
"""
|
||||
Empty archs set for file {} after taking
|
||||
the intersection of {} (global requested archs) and
|
||||
{} (per file requested archs)
|
||||
""".format(source_file, set(self.compute_capabilities), archs))
|
||||
""".format(source_file, set(self.compute_capabilities_baseline), archs))
|
||||
else:
|
||||
return " ".join(map(str, intersected_archs))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user