Skip to content

[LDC 1.42.0] invalidPtx error occurs in CUDA #89

Description

@takinutani

At LDC 1.42.0 (1.42.0-beta2 or later), dub test cause invalidPtx error.

PS D:\labo\dlang\dcompute_master> dub test

dcompute.driver.error.DComputeDriverException@source\dcompute\driver\error.d(207): invalidPtx
----------------
0x00007FF696623F31 in dcompute.driver.error.__lambda_L205_C5 at D:\labo\dlang\dcompute_master\source\dcompute\driver\error.d(207)
0x00007FF696623EA0 in dcompute.driver.error.__lambda_L200_C43 at D:\labo\dlang\dcompute_master\source\dcompute\driver\error.d(203)
0x00007FF696623D85 in dcompute.driver.error.checkErrors at D:\labo\dlang\dcompute_master\source\dcompute\driver\error.d(223)
0x00007FF696621BD1 in dcompute.driver.cuda.program.Program.fromFile at D:\labo\dlang\dcompute_master\source\dcompute\driver\cuda\program.d(31)
0x00007FF6966212FD in main.D main at D:\labo\dlang\dcompute_master\source\dcompute\tests\main.d(121)
0x00007FF696680691 in void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int function(char[][])*).runAll()
0x00007FF696680320 in d_run_main2
0x00007FF6966805F3 in d_wrun_main
0x00007FF6966224B4 in main.wmain at D:\scoop\user\apps\ldc\1.42.0\import\core\internal\entrypoint.d(32)
0x00007FF6966A5F0C in __scrt_common_main_seh at d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288)
0x00007FFBF89AE8D7 in BaseThreadInitThunk
0x00007FFBF9CEC48C in RtlUserThreadStart
Error Program exited with code 1

The direct reason is that the following function is not converted to NVPTX IR.

  • source\dcompute\std\cuda\sync.d
pragma(LDC_intrinsic, "llvm.nvvm.barrier0")
void barrier0();

becomes bellow, leaving LLVM IR in PTX.

.extern .func llvm.nvvm.barrier0
()
;

.visible .func _D8dcompute3std4sync7barrierFZv()
{


	{ // callseq 6, 0
	call.uni llvm.nvvm.barrier0, ();
	} // callseq 6
	ret;

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions