|
7 | 7 | from cuda.bindings import nvvm
|
8 | 8 |
|
9 | 9 | MINIMAL_NVVMIR = b"""\
|
10 |
| -target datalayout = "e-p:64:64:64-i64:64:64:64-i128:128:128:128-v16:16:16:16-v32:32:32:32-n16:32:64" |
| 10 | +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-i128:128:128-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64" |
| 11 | +
|
11 | 12 | target triple = "nvptx64-nvidia-cuda"
|
12 | 13 |
|
13 | 14 | define void @kernel() {
|
|
20 | 21 |
|
21 | 22 | !nvvmir.version = !{!1}
|
22 | 23 | !1 = !{i32 2, i32 0, i32 3, i32 1}
|
23 |
| -""" |
| 24 | +""" # noqa: E501 |
24 | 25 |
|
25 | 26 |
|
26 | 27 | def test_nvvm_version():
|
@@ -112,12 +113,18 @@ def test_with_minimal_nnvm_ir():
|
112 | 113 | prog = nvvm.create_program()
|
113 | 114 | try:
|
114 | 115 | nvvm.add_module_to_program(prog, MINIMAL_NVVMIR, len(MINIMAL_NVVMIR), "FileNameHere.ll")
|
115 |
| - nvvm.compile_program(prog, 0, []) |
116 |
| - log_size = nvvm.get_program_log_size(prog) |
117 |
| - assert log_size == 1 |
118 |
| - buffer = bytearray(log_size) |
119 |
| - nvvm.get_program_log(prog, buffer) |
120 |
| - assert buffer == b"\x00" |
| 116 | + try: |
| 117 | + nvvm.compile_program(prog, 0, []) |
| 118 | + except nvvm.nvvmError as e: |
| 119 | + buffer = bytearray(nvvm.get_program_log_size(prog)) |
| 120 | + nvvm.get_program_log(prog, buffer) |
| 121 | + raise RuntimeError(buffer.decode(errors="backslashreplace")) from e |
| 122 | + else: |
| 123 | + log_size = nvvm.get_program_log_size(prog) |
| 124 | + assert log_size == 1 |
| 125 | + buffer = bytearray(log_size) |
| 126 | + nvvm.get_program_log(prog, buffer) |
| 127 | + assert buffer == b"\x00" |
121 | 128 | result_size = nvvm.get_compiled_result_size(prog)
|
122 | 129 | buffer = bytearray(result_size)
|
123 | 130 | nvvm.get_compiled_result(prog, buffer)
|
|
0 commit comments