Native Apple Silicon / M1|M2|M3 Apps available

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 984
Credit: 25171438
RAC: 34

Bernd Machenschalk

Bernd Machenschalk wrote:

Other than that CUDA and OpenCL are rather similar, these are based on the same concepts. Metal, however, is rather different.

It's not that different, I'd say. Yes, it's a different ecosystem in terms of building apps and a few framework concepts, but that's also the case for CUDA and OpenCL. The kernels can be ported easily since they're also just C-like. So, all in all I'd say that Metal doesn't really differ from OpenCL or CUDA. All three share the same kinds of similarities and differences.

Oliver

Einstein@Home Project

chilina
chilina
Joined: 27 Sep 14
Posts: 22
Credit: 28035592
RAC: 15970

I agree with Bernd; it

I agree with Bernd; it doesn't make sense to maintain different codepaths for hardware.  Apple makes an amazing chip.  But there are other amazing chips in our world, and there will be tons more of these in the future.  And while cross-platform and open-source-software are fantastic ideas in my opinion, I can see why some corporations may want the opposite, at least for the near-term future.

I'd love to see an "intermediary layer" rise to prominence:  something that creates hardware-specific optimized gpu contexts that are needed for a task, and then manages memory and brokers data thru those pipelines.  This could be a cross-platform library like WebGPU, or a transcription process with AI or similar.  I'm not a big fan of AI, but I can see how it would be useful for such a task.  Translation layers are maybe encumbering on performance and difficult to maintain.  But transcribing an openCL compute pipeline to metal, cuda, vulkan, and future etc codebases would be so very helpful.

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 984
Credit: 25171438
RAC: 34

chilina wrote: I'd love to

chilina wrote:

I'd love to see an "intermediary layer" rise to prominence

Well, OpenCL was meant to be just that but the industry simply dropped it in favor of their own specific platforms...

Einstein@Home Project

zombie67 [MM]
Joined: 10 Oct 06
Posts: 121
Credit: 493604563
RAC: 1403118

I have a problem I am trying

I have a problem I am trying to solve:  Running native M* tasks on both the CPU and the GPU.  (and yes, I have both "CPU" and "Apple GPU" and "Run CPU versions of applications for which GPU versions are available" selected)

On the application page, I see that Binary Radio Pulsar Search (Arecibo,GBT,A) (BRP4A) has apps for:

1:  Mac OS X running on ARM:  (blank)

2:  Mac OS X running on ARM:  apple_gpu-opencl

3:  Mac OS X running on ARM: Apple_M-opencl

I am getting GPU tasks for my GPU from #3.  But nothing for my CPU.  I assume that #1 is CPU and not GPU, but I can't tell for sure from the info on that table.  Maybe #1 is not actually CPU?

Can someone please explain?

Reno, NV Team: SETI.USA

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 984
Credit: 25171438
RAC: 34

I think your assessment is

I think your assessment is correct. Unfortunately you've reached your daily task quota (something we need to tune anyway) so your latest scheduler request won't show what your client actually would have requested. I reset that quota, so please trigger a work request and let me know when that's done.

Also: "Run CPU versions of applications for which GPU versions are available" had been misnamed and obsolete for years. I removed it. Client and scheduler should hopefully handle your case automatically. The log above will tell.

Cheers

Einstein@Home Project

zombie67 [MM]
Joined: 10 Oct 06
Posts: 121
Credit: 493604563
RAC: 1403118

That fixed it!  I got tasks

That fixed it!  I got tasks for both the CPU and GPU running now.  Thanks!

 

Sorry, those tasks that downloaded were Gamma-ray pulsar search #5 (FGRP5).  I had also turned that app on, in trying to see if I could get CPU apps from the other M* app.  I forgot.  So I unselected Gamma-ray pulsar search #5 (FGRP5), and aborted those 4 tasks.  Now when I update the client, I get:

419809    Einstein@Home    8/29/2024 7:39:43 AM    Requesting new tasks for CPU    
419810    Einstein@Home    8/29/2024 7:39:43 AM    [sched_op] CPU work request: 30240.00 seconds; 3.50 devices    
419811    Einstein@Home    8/29/2024 7:39:43 AM    [sched_op] Apple M1 work request: 0.00 seconds; 0.00 devices    
419812    Einstein@Home    8/29/2024 7:39:45 AM    Scheduler request completed: got 0 new tasks    
419813    Einstein@Home    8/29/2024 7:39:45 AM    Server error: feeder not running    
 

 

Update:  After waiting a few minutes, I am now getting:

420200    Einstein@Home    8/29/2024 7:46:37 AM    update requested by user    
420207    Einstein@Home    8/29/2024 7:46:43 AM    [sched_op] sched RPC pending: Requested by user    
420208    Einstein@Home    8/29/2024 7:46:43 AM    [sched_op] Starting scheduler request    
420209    Einstein@Home    8/29/2024 7:46:43 AM    Sending scheduler request: Requested by user.    
420210    Einstein@Home    8/29/2024 7:46:43 AM    Reporting 6 completed tasks    
420211    Einstein@Home    8/29/2024 7:46:43 AM    Requesting new tasks for CPU    
420212    Einstein@Home    8/29/2024 7:46:43 AM    [sched_op] CPU work request: 30240.00 seconds; 3.50 devices    
420213    Einstein@Home    8/29/2024 7:46:43 AM    [sched_op] Apple M1 work request: 0.00 seconds; 0.00 devices    
420214    Einstein@Home    8/29/2024 7:46:46 AM    Scheduler request completed: got 0 new tasks    
420215    Einstein@Home    8/29/2024 7:46:46 AM    [sched_op] Server version 611    
420216    Einstein@Home    8/29/2024 7:46:46 AM    No work sent    
420217    Einstein@Home    8/29/2024 7:46:46 AM    No work is available for Binary Radio Pulsar Search (Arecibo,GBT,A)    
 

Reno, NV Team: SETI.USA

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 984
Credit: 25171438
RAC: 34

Thanks, something's indeed

Thanks, something's indeed fishy there... We're looking into it.

 

Einstein@Home Project

zombie67 [MM]
Joined: 10 Oct 06
Posts: 121
Credit: 493604563
RAC: 1403118

FWIW, my machine has since

FWIW, my machine has since asked for CPU work, and did receive some.  But the client thinks all the tasks received are GPU tasks.  So now I have a total of 349 tasks, all for the GPU.  Those 349 tasks are 1d 10h worth of work for the GPU, and my cache is set to .1 days.  I think my client keeps asking for work, because the CPU threads are idle, and the GPU queue of tasks just keep getting bigger and bigger.  

FWIW, this is the client:  https://einsteinathome.org/host/13179066

 

424901    Einstein@Home    8/29/2024 9:01:28 AM    [sched_op] Starting scheduler request    
424902    Einstein@Home    8/29/2024 9:01:28 AM    Sending scheduler request: To report completed tasks.    
424903    Einstein@Home    8/29/2024 9:01:28 AM    Reporting 1 completed tasks    
424904    Einstein@Home    8/29/2024 9:01:28 AM    Requesting new tasks for CPU    
424905    Einstein@Home    8/29/2024 9:01:28 AM    [sched_op] CPU work request: 30240.00 seconds; 3.50 devices    
424906    Einstein@Home    8/29/2024 9:01:28 AM    [sched_op] Apple M1 work request: 0.00 seconds; 0.00 devices    
424907    Einstein@Home    8/29/2024 9:01:31 AM    Scheduler request completed: got 39 new tasks    
424908    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] Server version 611    
424909    Einstein@Home    8/29/2024 9:01:31 AM    Project requested delay of 60 seconds    
424910    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] estimated total CPU task duration: 0 seconds    
424911    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] estimated total Apple M1 task duration: 14783 seconds    
424912    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] handle_scheduler_reply(): got ack for task p2030.1724858706.G60.20-03.65.C.b2s0g0.00000_2330_1    
424913    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] Deferring communication for 00:01:00    
424914    Einstein@Home    8/29/2024 9:01:31 AM    [sched_op] Reason: requested by project    
 

Reno, NV Team: SETI.USA

Oliver Behnke
Oliver Behnke
Moderator
Administrator
Joined: 4 Sep 07
Posts: 984
Credit: 25171438
RAC: 34

Quote:I think my client

Quote:

I think my client keeps asking for work, because the CPU threads are idle, and the GPU queue of tasks just keep getting bigger and bigger. 


I don't think this is the case since the CPU-only requests like the above don't return any, even if your daily quota isn't yet reached.

Quote:

FWIW, my machine has since asked for CPU work, and did receive some.  But the client thinks all the tasks received are GPU tasks.  So now I have a total of 349 tasks, all for the GPU.  Those 349 tasks are 1d 10h worth of work for the GPU, and my cache is set to .1 days.


Are your sure those requests didn't also request more GPU work? Please ignore the cache size issue which might be an independent factor/issue.

I need to ask for your patience here as investigating this is will take some time because we're understaffed at the moment. Rest assured we're on it.

Thanks

Einstein@Home Project

zombie67 [MM]
Joined: 10 Oct 06
Posts: 121
Credit: 493604563
RAC: 1403118

In the last post (227837),

In the last post (227837), you can see it asks for ONLY CPU tasks, and then receives 39 tasks.  Those 39 tasks are GPU tasks.  I don't think it has ever received any CPU tasks to date.

 

424905    Einstein@Home    8/29/2024 9:01:28 AM    [sched_op] CPU work request: 30240.00 seconds; 3.50 devices    
424906    Einstein@Home    8/29/2024 9:01:28 AM    [sched_op] Apple M1 work request: 0.00 seconds; 0.00 devices    
424907    Einstein@Home    8/29/2024 9:01:31 AM    Scheduler request completed: got 39 new tasks    
 

Reno, NV Team: SETI.USA

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.