Skip to content

Problem with SimpleAutoSchedule for GPU #7

@GunnarDahlgren

Description

@GunnarDahlgren

Hi,

Being a (gradient) Halide newbie, I've only made some simple stuff yet, but I've come across an issue with the SimpleAutoScheduler I don't understand. I later discovered that I get exactly the same kind of errors if I try to schedule the tests in src/SimpleAutoSchedule.cpp for the GPU... I did the following

 > make test_internal
works fine by default.

I then did this edit:
--- a/src/SimpleAutoSchedule.cpp
+++ b/src/SimpleAutoSchedule.cpp
@@ -837,6 +837,7 @@ namespace Internal {
 void simple_autoschedule_test() {
     // For now we just test whether it compiles or not.
     SimpleAutoscheduleOptions cpu_options;
 +    cpu_options.gpu = true;
     Var x("x"), y("y"), z("z");
     { // Simple pointwise operations. Should inline.
         Func in("in");

, and ran the tests again with:

 > export HL_JIT_TARGET=x86-64-linux-avx-opencl-sse41
(which I believe is the correct target for my machine - is the same as is returned by find_gpu_target() in tutorials/lesson12)
 > make test_internal
now fails with this error message:
Error at gradient-halide/test/internal.cpp:45:
Input buffer b17 is accessed at 16387, which is beyond the max (16383) in dimension 0
bash: line 1: 24583 Aborted                 gradient-halide/bin/test_internal
Makefile:1523: recipe for target 'test_internal' failed
make: *** [test_internal] Error 134

(gdb tells me the error happens in the test at src/SimpleAutoSchedule.cpp:873: Buffer output = conv.realize(16384 - 5); )

I'm not sure if I'm doing something fundamentally in the wrong way here though... Any feedback would be very much appreciated.
Thanks, brgds
Gunnar

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions