Skip to content
This repository was archived by the owner on Apr 28, 2023. It is now read-only.

Commit 1ad8e87

Browse files
committed
make privateDepth mapping option tunable
Introduce a tunable parameter for the privateDepth option introduced by the previous commit. Choose initial depth within the range [0, 6] since we rarely have deeper loops.
1 parent 788dd94 commit 1ad8e87

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

tc/autotuner/autotuner-inl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,8 @@ void setupTuningParameters(
372372
configuration.gridParams.setRange(range, "g");
373373
configuration.unrollFactor =
374374
RangeParameter(powers2(FLAGS_tuner_max_unroll_size), "unroll");
375+
configuration.privateDepth =
376+
RangeParameter({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, "pdepth");
375377
}
376378
} // namespace
377379

tc/autotuner/parameters.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ void TuningConfiguration::applyToParameters(
239239
unrollCopyShared.apply(f);
240240
useReadOnlyCache.apply(f);
241241
matchLibraryCalls.apply(f);
242+
privateDepth.apply(f);
242243
}
243244

244245
bool TuningConfiguration::isValid() const {
@@ -273,6 +274,7 @@ std::vector<ParameterView> TuningConfiguration::collectParameters() {
273274
params.emplace_back(unrollCopyShared);
274275
params.emplace_back(useReadOnlyCache);
275276
params.emplace_back(matchLibraryCalls);
277+
params.emplace_back(privateDepth);
276278

277279
return params;
278280
}
@@ -303,6 +305,7 @@ void TuningConfiguration::fromCudaMappingOptions(
303305
usePrivateMemory.selectValue(options.proto().use_private_memory());
304306
unrollCopyShared.selectValue(options.proto().unroll_copy_shared());
305307
useReadOnlyCache.selectValue(options.proto().use_readonly_cache());
308+
privateDepth.selectFromValue(options.proto().private_depth());
306309
}
307310

308311
void TuningConfiguration::fromCpuMappingOptions(
@@ -331,6 +334,7 @@ void TuningConfiguration::applyToCudaMappingOptions(
331334
options.usePrivateMemory(usePrivateMemory.value());
332335
options.unrollCopyShared(unrollCopyShared.value());
333336
options.useReadOnlyCache(useReadOnlyCache.value());
337+
options.privateDepth(privateDepth.value());
334338
}
335339

336340
void TuningConfiguration::applyToCpuMappingOptions(

tc/autotuner/parameters.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ class TuningConfiguration {
190190
BoolParameter unrollCopyShared;
191191
BoolParameter useReadOnlyCache;
192192
BoolParameter matchLibraryCalls;
193+
RangeParameter privateDepth;
193194

194195
private:
195196
std::vector<std::function<bool(const TuningConfiguration&)>> validators_;
@@ -227,6 +228,7 @@ class TuningParameterFixer {
227228
llvm::Optional<bool> unrollCopyShared;
228229
llvm::Optional<bool> useReadOnlyCache;
229230
llvm::Optional<bool> matchLibraryCalls;
231+
llvm::Optional<uint32_t> privateDepth;
230232

231233
friend class TuningConfiguration;
232234
};

0 commit comments

Comments
 (0)