From: Noah R. <noa...@gm...> - 2022-05-20 15:40:57
|
Hi Isuru, Thank you for maintaining the conda package and the suggestion. It is true I don't have the conda environment activated when building / running my large app. I installed conda for the sole purpose of POCL and generally use homebrew for similar needs. I'm not seeing any difference in build/run of hello-opencl whether I have conda activated or not. SDKROOT is not set either way. Starting with a fresh shell: ---------------------------------------------- Last login: Wed May 18 22:48:50 on ttys005 noah@Spitzer ~ % clang -g -L/Users/noah/miniforge3/lib/ -Wl,-rpath,/Users/noah/miniforge3/lib/ -lOpenCL /Users/noah/Downloads/hello_opencl.c noah@Spitzer ~ % ./a.out Num Platforms: 1 platform[0] name: Portable Computing Language platform[0] Num Devices: 1 device[0] name: pthread function definition may only have a distinct !dbg attachment i64 (i32)* @_Z13get_global_idj Computed '1024/1024' correct values! noah@Spitzer ~ % echo $SDKROOT noah@Spitzer ~ % source /Users/noah/miniforge3/etc/profile.d/conda.sh noah@Spitzer ~ % conda activate (base) noah@Spitzer ~ % echo $SDKROOT (base) noah@Spitzer ~ % clang -g -L/Users/noah/miniforge3/lib/ -Wl,-rpath,/Users/noah/miniforge3/lib/ -lOpenCL /Users/noah/Downloads/hello_opencl.c (base) noah@Spitzer ~ % ./a.out Num Platforms: 1 platform[0] name: Portable Computing Language platform[0] Num Devices: 1 device[0] name: pthread function definition may only have a distinct !dbg attachment i64 (i32)* @_Z13get_global_idj Computed '1024/1024' correct values! (base) noah@Spitzer ~ % which clang /usr/bin/clang ---------------------------------------------- I'll check out your build.sh recipe. At first glance, it is not clear to me how you're dealing with the MacOS pthread not having pthread_barrier_t and related functions. When I tried to build POCL last week, those pthread parts are needed. Cheers, -Noah On Fri, May 20, 2022 at 7:51 AM Isuru Fernando <is...@gm...> wrote: > > I think the issue is that you don't have the conda environment activated. > Activating the conda environment sets the SDKROOT env variable > so that clang can find the macOS SDK. > > I maintain the pocl conda package with some other maintainers. You > can find our build scripts at https://github.com/conda-forge/pocl-feedstock/blob/main/recipe/build.sh > > Isuru > > On Fri, May 20, 2022 at 9:38 AM Noah Reddell <noa...@gm...> wrote: >> >> Hi, >> I upgraded to an M1 Pro Mac and found that MacOS's built-in OpenCL >> implementation no longer supports the CPU device. The GPU is >> supported -- for now at least, but doesn't do fp64. >> I'm very motivated to have a local OpenCL platform on my Mac that >> supports CPU device. This is by far the most productive way for me to >> first debug and develop kernels versus GPU-based debugging or on >> remote systems. So I return to POCL but for the first time trying to >> use it on a Mac. I'm having struggles. (latest releases MacOS >> 12.3.1, XCode 13.4) >> >> My problems trying to build and run the latest POCL are more complex, >> so I'll first mention a problem trying to use POCL acquired with the >> Conda package manager this week. I can build and run a simple >> hello-world program with one kernel and it computes the right answers >> using POCL. >> OpenCL Devices Detected: >> Platform: Portable Computing Language >> Type: CPU, Name: pthread >> >> >> Unfortunately, when I run my large computational science application, >> I get a runtime error shortly after the first call to >> clEnqueueNDRangeKernel(). The function returns CL_SUCCESS, another >> thread raises SIGABRT, I assume after the following output: >> >> ld: dynamic main executables must link with libSystem.dylib for >> architecture arm64 >> error: linker command failed with exit code 1 (use -v to see invocation) >> Final linking of kernel physical_initial_condition_evaluation failed. >> >> Since my hello-world app works, yet the app I care about doesn't, my >> leading suspicion so far is some confusion about which clang / llvm is >> getting utilized. I've tried to be careful about what PATH is set and >> I'm not setting DYLD_LIBRARY_PATH in any way. >> I'd love to pass "-v" to the POCL link as suggested, but I'm not sure >> how to do that. >> The main application *is* linked with -lSystem so that error message >> is probably referring to the POCL kernel build. >> It looks like POCL_MSG_PRINT_LLVM could be helpful, but I think that >> is only set when POCL is built, and I'm not able to build. >> >> Ok, so any suggestions about the above problem would be appreciated! >> >> >> Sometime I'd really like to be able to build POCL myself. >> >> I can tell that some special steps are needed to get the latest POCL >> to build for MacOS. Who is maintaining that Conda package? Are the >> build steps available? >> >> Lesser question stemming from my failed attempts to build POCL from source: >> Question: What is the difference between the "basic" device and >> "pthread" device? I'm not finding documentation for either host >> devices. >> One reason I ask is that I found problems building "pthread" due to >> Apple's pthread.h not including pthread_barrier support. Looks >> like two lines in CMakeLists.txt under if(ENABLE_HOST_CPU_DEVICES) >> could be modified to turn off the pthreads device. I also had >> success naively providing implementations of the missing functions in >> file pthread_scheduler.c >> >> >> >> Warm regards, >> >> Noah >> >> >> _______________________________________________ >> pocl-devel mailing list >> poc...@li... >> https://lists.sourceforge.net/lists/listinfo/pocl-devel > > _______________________________________________ > pocl-devel mailing list > poc...@li... > https://lists.sourceforge.net/lists/listinfo/pocl-devel |