From: Isuru F. <is...@gm...> - 2022-05-20 16:13:45
|
Ah, that makes sense now. Can you try doing the following? export SDKROOT=$(xcrun --show-sdk-path) (Note that the clang you are using and the one from conda that pocl is using are two different things) Isuru On Fri, May 20, 2022 at 10:41 AM Noah Reddell <noa...@gm...> wrote: > 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 > > > _______________________________________________ > pocl-devel mailing list > poc...@li... > https://lists.sourceforge.net/lists/listinfo/pocl-devel > |