Florian Wuennemann
03/24/2025, 3:02 PMMathys
03/24/2025, 3:03 PMFlorian Wuennemann
03/24/2025, 6:11 PM/mnt/shared/singularity_cache with chmod -R 777 /mnt/shared/singularity_cache to make sure everyone can write their singularity images there (wasn't before, my bad, sorry!). If you only want read permissions, then the default permissions should be fine! ⚠️Florian Wuennemann
03/24/2025, 7:09 PMMathys
03/25/2025, 8:35 AMFlorian Wuennemann
03/25/2025, 2:07 PMMathys
03/25/2025, 3:54 PMMathys
03/25/2025, 4:05 PMFlorian Wuennemann
03/27/2025, 1:02 AMFlorian Wuennemann
03/27/2025, 3:32 AMgit clone this branch https://github.com/FloWuenne/nextflow/tree/gpu-metrics-record and execute a pipeline. You can then get the metrics from the tracelog via a variation of this command:
trace {
enabled = true
file = "${projectDir}/results/execution_trace.txt"
overwrite = true
fields = 'task_id,name,cpu_model,status,exit,realtime,%cpu,rss,gpu_model,gpu_mem_total,gpu_driver,avg_gpu_util,avg_gpu_mem_perc'
}
I will rename the field names tomorrow, but this should work for now!Mathys
03/27/2025, 8:49 AMMathys
03/27/2025, 8:50 AMFlorian Wuennemann
03/27/2025, 2:19 PMLindsay Clark
04/30/2025, 3:36 PMwithLabel:'process_gpu' block to a public config file (E.g. the one I help maintain at https://github.com/nf-core/configs/blob/master/conf/seattlechildrens.config)? I have already used the GPU with Nextflow on some of our internal custom pipelines, so I know what I need to put in there to get it working on our cluster. I see at least that nf-core/scdownstream uses this label, and I can imagine some of our cluster users wanting to use that pipeline.Michael Heuer
08/11/2025, 5:24 PMMichael Heuer
08/11/2025, 5:25 PMMichael Heuer
08/11/2025, 5:26 PMNicolas Vannieuwkerke
11/03/2025, 8:55 AMMathys
12/11/2025, 10:49 AMMathys
12/11/2025, 10:50 AMMathys
12/11/2025, 10:50 AMFlorian Wuennemann
12/12/2025, 3:36 PMMathys
12/12/2025, 3:40 PMFred Jaya
01/14/2026, 2:07 AMFred Jaya
01/14/2026, 2:09 AMmashehu
03/04/2026, 4:40 PMFlorian Wuennemann
03/06/2026, 9:03 PMLukas Heumos
05/07/2026, 12:32 PMSINRASU ALAGUDURAI
05/12/2026, 11:51 AMCUDA is not available).
4. Fix Applied
◦ Identified that GPU access required explicit configuration.
◦ Added: --gpus all via containerOptions in Nextflow config.
◦ ✅ This resolved the issue:
• Docker (interactive) → Working
• Nextflow (local) → Working
5. Seqera Platform Execution
◦ Applied the same configuration in Seqera.
◦ ❌ Issue persists: GPU is still not detected (CUDA not available).
6. Additional Checks
◦ Verified accelerator operator → Already present
◦ Tried multiple configurations like containeroptions, docker.runoptions for that particular process → No success
❗ Current Issue
Even after:
• Using the same AMI,
• Ensuring GPU instance type,
• Passing --gpus all,
• Confirming local success with Docker and Nextflow,
GPU is not accessible when the pipeline is triggered from Seqera.
Question:
What could be causing GPU not being exposed/accessible inside containers when launched via Seqera?Mahesh Binzer-Panchal
08/12/2026, 3:58 PMprocess.accelerator (docs.seqera.io/nextflow/reference/process#…) should be set by.
Does every module that checks task.accelerator have to have the process_gpu label? Not all currently do ( which means they default to cpu - why not default to gpu? )
Should pipelines need to set process.accelerator? The -profile gpu sets task.accelerator = 1 but I guess this should be overridden by an actual map that assigns type and request.
It would make sense that institutional configs set this - but if they support multiple types, how exactly should this be supplied by the user?
Is a user expected to override settings with a custom config with process selectors and set the accelerator?
process {
withName: 'GPU_PROCESS_ONE' {
accelerator = [ type: 'h100', request: 4 ]
}
withName: 'GPU_PROCESS_TWO' {
accelerator = [ type: 'l40s', request: 1 ]
}
}
and then if they're using an executor that doesn't directly support the directive, should the institute config add it to say process.clusterOptions via the cluster directives e.g. slurm -> grus
Is it turned off for a particular module in the same way
process {
withName: 'GPU_PROCESS_ONE' {
accelerator = null
}
}
and if so, what's the use of ext.use_gpu now?
And if overriding generally, I guess they should first override withLabel: 'process_gpu' and then use withName?