From: Isuru F. <is...@gm...> - 2022-05-20 17:21:15
|
SDKROOT is not the problem then. I think you need the `ld` executable found in `/Users/noah/miniforge3/bin` in the PATH. (That ld is a patched ld to workaround a setting we have added in conda to workaround issues with SDKROOT) This can probably be fixed in the conda package, but not sure. Isuru On Fri, May 20, 2022 at 11:49 AM Noah Reddell <noa...@gm...> wrote: > I find no difference exporting SDKROOT at build time, run time, or both. > > 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 phase_initial_condition_evaluation failed. > > (base) noah@Spitzer ~ % which xcrun > /usr/bin/xcrun > (base) noah@Spitzer ~ % xcrun --show-sdk-path > > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk > > When are you supposing SDKROOT in the environment affects behavior? > > I tried to use dtruss to catch whatever system calls are happening > under clEnqueueNDRangeKernel() but that system utility isn't catching > anything. ...MacOS security I think. > > -Noah > > On Fri, May 20, 2022 at 9:14 AM Isuru Fernando <is...@gm...> wrote: > > > > 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 > > > > _______________________________________________ > > 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 > |