[CORE][DRIVER] Now only using PTX6.4 if CUDA10.1+ is detected

This commit is contained in:
Philippe Tillet
2020-03-05 21:29:22 -05:00
committed by Philippe Tillet
parent f08dd0ec58
commit 9cb3fd899a

View File

@@ -247,7 +247,14 @@ std::string cu_module::compile_llvm_module(std::unique_ptr<llvm::Module> module,
llvm::SmallVector<char, 0> buffer;
module::compile_llvm_module(std::move(module), "nvptx64-nvidia-cuda", sm, "", buffer, "ptx63", Assembly);
std::string result(buffer.begin(), buffer.end());
find_and_replace(result, ".version", "\n", ".version 6.4\n");
int version;
dispatch::cuDriverGetVersion(&version);
int major = version / 1000;
int minor = (version - major*1000) / 10;
if(major < 10)
throw std::runtime_error("Triton requires CUDA 10+");
if(minor >= 1)
find_and_replace(result, ".version", "\n", ".version 6.4\n");
while(find_and_replace(result, "\t// begin inline asm", "\n", ""));
while(find_and_replace(result, "\t// end inline asm", "\n", ""));
return result;