[CORE][DRIVER] Now only using PTX6.4 if CUDA10.1+ is detected
This commit is contained in:
committed by
Philippe Tillet
parent
f08dd0ec58
commit
9cb3fd899a
@@ -247,7 +247,14 @@ std::string cu_module::compile_llvm_module(std::unique_ptr<llvm::Module> module,
|
|||||||
llvm::SmallVector<char, 0> buffer;
|
llvm::SmallVector<char, 0> buffer;
|
||||||
module::compile_llvm_module(std::move(module), "nvptx64-nvidia-cuda", sm, "", buffer, "ptx63", Assembly);
|
module::compile_llvm_module(std::move(module), "nvptx64-nvidia-cuda", sm, "", buffer, "ptx63", Assembly);
|
||||||
std::string result(buffer.begin(), buffer.end());
|
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// begin inline asm", "\n", ""));
|
||||||
while(find_and_replace(result, "\t// end inline asm", "\n", ""));
|
while(find_and_replace(result, "\t// end inline asm", "\n", ""));
|
||||||
return result;
|
return result;
|
||||||
|
Reference in New Issue
Block a user