From 9cb3fd899a7ff54f16d7134f2a7f3e9fb92801a2 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Thu, 5 Mar 2020 21:29:22 -0500 Subject: [PATCH] [CORE][DRIVER] Now only using PTX6.4 if CUDA10.1+ is detected --- lib/driver/module.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/driver/module.cc b/lib/driver/module.cc index 51b722ecf..f117c7f29 100755 --- a/lib/driver/module.cc +++ b/lib/driver/module.cc @@ -247,7 +247,14 @@ std::string cu_module::compile_llvm_module(std::unique_ptr module, llvm::SmallVector 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;