On Sun, Jun 15, 2014 at 8:17 PM, Yichao Yu <yyc1...@gmail.com> wrote: > I have applied the kernel patch[1] as Zhigang Gong suggested off-list > and it indeed fixes some failing tests (especially some > out-of-resources errors). However, the test program I was using still > hangs at exactly the same place (clWaitForEvents).
Did you use the latest git master beignet? You said you met some out-of-resources error which make me doubt the version you were using, as that seems a known bug which we fixed several months ago. And if you were indeed using git master version, that may be a new bug and please submit some more details here to tell us how to reproduce this bug if possible. We will be happy to fix it. Thanks. > > P.S. I have finally found a working OpenCL 1.2 implementation > (intel-opencl-sdk for CPU) and it works fine with the test program so > I guess it is actually a bug in beignet. > > [1] https://aur.archlinux.org/pkgbase/linux-beignet-fix/ > > > On Sun, Jun 15, 2014 at 6:44 AM, Yichao Yu <yyc1...@gmail.com> wrote: >> On Sun, Jun 15, 2014 at 5:42 AM, Zhigang Gong <zhigang.g...@gmail.com> wrote: >>> >>> >>>> 在 2014年6月15日,6:02,Yichao Yu <yyc1...@gmail.com> 写道: >>>> >>>>> On Sat, Jun 14, 2014 at 11:51 AM, Yichao Yu <yyc1...@gmail.com> wrote: >>>>> Sorry for the delay. I was busy graduating and didn't have much time >>>>> in the past two weeks for testing. >>>>> >>>>> The gpu hang is still there and I haven't been able to make a c >>>> >>>> Sorry I was wrong, it seems that the hang only happens before I >>>> upgrade beignet. There are still a lot of failing tests but the screen >>>> does not freeze anymore. >>> Which Linux kernel did you using on your previous test? Did you apply the >>> kernel patch which provided by Rong in his email? If you haven't applied >>> the kernel patch, you will not get the slm and barrier work correctly. And >>> all related tests are known broken. >> >> I C. I guess that is the reason than... >> >> THX >> >>>> >>>>> version of the test program. However, I have found another problem >>>>> with the newly merged opencl1.2 APIs when testing sth else. >>>>> >>>>> The c test program to trigger the issue is here[1]. When running on my >>>>> Haswell CPU, beignet hangs in clWaitForEvents with the backtrace >>>>> >>>>> #0 0x00007ffff78cc9d0 in __nanosleep_nocancel () from >>>>> /usr/lib/libc.so.6 #1 0x00007ffff78f6c94 in usleep () from >>>>> /usr/lib/libc.so.6 #2 0x00007ffff73dfc8a in clWaitForEvents >>>>> (num_events=1, event_list=0x7fffffffda58) at >>>>> /home/yuyichao/projects/mlinux/pkg/all/beignet-git/src/beignet/src/cl_api.c:1316 >>>>> #3 0x00007ffff7bc861e in clWaitForEvents (num_events=1, >>>>> event_list=0x7fffffffda58) at ocl_icd_loader.c:873 #4 >>>>> 0x00000000004009aa in main () at beignet-bug2.c:34 >>>>> >>>>> It seems that the problem only happens for the event returned by >>>>> clEnqueueBarrierWithWaitList when the wait list is not empty. I hope I >>>>> am not using the api in the wrong way but I don't have another working >>>>> opencl 1.2 implementation (pocl crashes on clEnqueueBarrier*...) to >>>>> test it......... >>>>> >>>>> [1] https://gist.github.com/yuyichao/8b661d51c81f1c85466e >>>>> >>>>>> On Wed, Jun 4, 2014 at 7:29 AM, Yichao Yu <yyc1...@gmail.com> wrote: >>>>>>> On Tue, Jun 3, 2014 at 11:15 PM, Yang, Rong R <rong.r.y...@intel.com> >>>>>>> wrote: >>>>>>> Printf is not a built in function OpenCL 1.1, so beignet don't support >>>>>>> it now. However, beignet are supporting it, maybe you could use it soon. >>>>>> >>>>>> However, even if the function is not defined, shouldn't the compiler >>>>>> return a error (opencl error) rather than raising a exception and >>>>>> abort? >>>>>> >>>>>>> Yes, the patch about 3D pipe have not push now, but You can apply by >>>>>>> manual and try it. >>>>>> >>>>>> I'm afraid I don't have time to test it soon... >>>>>> >>>>>>> >>>>>>> -----Original Message----- >>>>>>> From: Yichao Yu [mailto:yyc1...@gmail.com] >>>>>>> Sent: Thursday, May 29, 2014 8:40 PM >>>>>>> To: Yang, Rong R >>>>>>> Cc: beignet@lists.freedesktop.org >>>>>>> Subject: Re: [Beignet] Beignet not working on Dell Precision M3800 >>>>>>> >>>>>>>> On Thu, May 29, 2014 at 4:46 AM, Yang, Rong R <rong.r.y...@intel.com> >>>>>>>> wrote: >>>>>>>> I have checked this issue, it is a beignet compiler bug, should be fix >>>>>>>> by patch "GBE: Change 64bit integer storage in register". >>>>>>>> >>>>>>>> For the first problem, I have sent some patch, can you try them? The >>>>>>>> patch " HSW: Restore L3 control register to disable SLM mode." fix a >>>>>>>> 3D pipe affect by Beignet bug. May be the same problem you met. >>>>>>> >>>>>>> I am testing using the current master >>>>>>> >>>>>>> c34eba71bd5a518906d6d5d3ba26e44327cab251 >>>>>>> GBE: fix one illegal instruction when replace a uniform dst. >>>>>>> >>>>>>> So the patch u mentioned for 3D pipe doesn't seem to be included yet. >>>>>>> >>>>>>> Here are what I saw, >>>>>>> 1, `printf("%d\n", i);` works on pocl but still crashes the compiler on >>>>>>> beignet with the same error. >>>>>>> 2, the c example I gave works but the original python version does >>>>>>> not... Will figure out the difference once I get more time. >>>>>>> 3, the interference with opengl seems to be different. The same effect >>>>>>> I mentioned last time shows up when sth is running on the GPU but >>>>>>> recovers afterward. However, it now gives your email a funny texture by >>>>>>> replacing some of the characters with another one...[1] (o in this >>>>>>> case...) I also remember seeing this problem randomly sometime before >>>>>>> but it was not as reproducible... >>>>>>> >>>>>>> I guess I will test again once those 3d pipe fixing patches are applied. >>>>>>> >>>>>>> [1] http://wstaw.org/m/2014/05/29/plasma-desktopzSP722.png >>>>>>> >>>>>>> Yichao Yu >>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Yichao Yu [mailto:yyc1...@gmail.com] >>>>>>>> Sent: Wednesday, May 28, 2014 11:49 PM >>>>>>>> To: Yang, Rong R >>>>>>>> Cc: beignet@lists.freedesktop.org >>>>>>>> Subject: Re: [Beignet] Beignet not working on Dell Precision M3800 >>>>>>>> >>>>>>>>> On Wed, May 28, 2014 at 11:45 AM, Yichao Yu <yyc1...@gmail.com> wrote: >>>>>>>>> On Wed, May 28, 2014 at 10:39 AM, Yichao Yu <yyc1...@gmail.com> wrote: >>>>>>>>>>> The second problem is that there seems to be sth wrong if I run two >>>>>>>>>>> tests in series. More specifically, `test_elwise_kernel`[3], >>>>>>>>>>> `test_elwise_kernel_with_option`[4] and >>>>>>>>>>> `test_ranged_elwise_kernel`[5] can all pass if I run them >>>>>>>>>>> individually. However, if I run them together, only the first one >>>>>>>>>>> can pass... I will try to reproduce this in C... >>>>>>>>>> >>>>>>>>>> Sorry this is NOT what happened... I was not using the right >>>>>>>>>> parameter to select the tests and there isn't any (at least no >>>>>>>>>> evidence for it) interference between kernels. >>>>>>>>>> The problem is rather the test_elsize_kernel_with_option and >>>>>>>>>> test_ranged_elwise_kernel are not working.. >>>>>>>>>> Also the failing one sometimes (~2 times in 8) hang the wm for >>>>>>>>>> ~10s... >>>>>>>>>> will try to make a c version.... >>>>>>>>> >>>>>>>>> And it seems that none of them is actually working, just that when >>>>>>>>> the difference is calculated using OpenCL, it always returns 0... >>>>>>>>> >>>>>>>>> so here[1] is the c version. The problem seems to be related to the >>>>>>>>> use of get_local_size and/or get_group_id in the kernel. When I was >>>>>>>>> using a simple kernel with `int i = get_global_id(0);`, everything >>>>>>>>> works fine. >>>>>>>> >>>>>>>> I haven't applied the patch for using local memory in the kernel. Does >>>>>>>> that patch affect not only local memory but also local size somehow? >>>>>>>> >>>>>>>>> >>>>>>>>> [1] https://gist.github.com/yuyichao/242fd2a812088930af91 >>>>>>>>> >>>>>>>>> P.S. I was trying to use printf in the kernel and it seems to crash >>>>>>>>> the compiler..... Not sure if I was using it correctly but I guess it >>>>>>>>> shouldn't crash in any case... >>>>>>>>> >>>>>>>>> here is the error: >>>>>>>>> ``` >>>>>>>>> ASSERTION FAILED: it != instrinsicMap.map.end() at file >>>>>>>>> /home/yuyichao/projects/mlinux/pkg/all/beignet-git/src/beignet/backen >>>>>>>>> d /src/llvm/llvm_gen_backend.cpp, function void >>>>>>>>> gbe::GenWriter::regAllocateCallInst(llvm::CallInst&), >>>>>>>>> line 2115 [1] 28951 trace trap (core dumped) ./beignet-bug >>>>>>>>> ``` >>>>>>>>> >>>>>>>>> with the following kernel (not sure if it is valid haven't use printf >>>>>>>>> before....), >>>>>>>>> >>>>>>>>> ``` >>>>>>>>> __kernel void fill_one(__global float *out, long n) { >>>>>>>>> int i = get_global_id(0); >>>>>>>>> printf("%d\n", i); >>>>>>>>> if (i < n) { >>>>>>>>> out[i] = 1; >>>>>>>>> } >>>>>>>>> } >>>>>>>>> ``` >>>>>>>>> (this kernel (without printf) works btw....) >>>>>>>>> >>>>>>>>> Yichao Yu >>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> [1] http://wstaw.org/m/2014/05/28/plasma-desktopObn722.png >>>>>>>>>>> [2] http://wstaw.org/m/2014/05/28/plasma-desktopWbB722.png >>>>>>>>>>> [3] >>>>>>>>>>> https://github.com/pyopencl/pyopencl/blob/master/test/test_algorith >>>>>>>>>>> m >>>>>>>>>>> .py#L45 [4] >>>>>>>>>>> https://github.com/pyopencl/pyopencl/blob/master/test/test_algorith >>>>>>>>>>> m >>>>>>>>>>> .py#L66 [5] >>>>>>>>>>> https://github.com/pyopencl/pyopencl/blob/master/test/test_algorith >>>>>>>>>>> m >>>>>>>>>>> .py#L97 >>>>>>>>>>> >>>>>>>>>>> Yours, >>>>>>>>>>> Yichao Yu >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks for point out it, I have sent a patch to correct it. >>>>>>>>>>> >>>>>>>>>>> Seems fixed. THX. =) >>>> _______________________________________________ >>>> Beignet mailing list >>>> Beignet@lists.freedesktop.org >>>> http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet