Project

General

Profile

Task #2438

Task #2454: OpenCL infrastructure improvements

bump OpenCL requirement to 1.2

Added by Szilárd Páll almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
mdrun
Target version:
Difficulty:
simple
Close

Description

This will allow us to modernize the API and make use of some new features. Tasks as checklist below.


Checklist

  • bump the requirement in cmake
  • remove the OpenCL 1.1 API use / fully replace all instances with 1.2 functions
  • replace custom memset with clEnqueueFillBuffer()

Related issues

Is duplicate of GROMACS - Task #2193: OpenCL code modernization assuming v1.2 reqdClosed

Associated revisions

Revision 8bf7d7c9 (diff)
Added by Szilárd Páll over 1 year ago

Require OpenCL 1.2

This commit bumps the requirement and removes OpenCL 1.1 API
compatibility support.

Refs #2438

Change-Id: Iaedf5fbdfd24a2d020983847815c2c21bac0f74c

Revision 93103bb2 (diff)
Added by Szilárd Páll about 1 year ago

Swap custom OpenCL memset kernel for clEnqueueFillBuffer

The OpenCL 1.2 API provides a function that is now used for clearing the
force buffer.

Refs #2438

Change-Id: I6dedf901f230d2b5f9838f315897186bd4bd55f8

History

#1 Updated by Mark Abraham almost 2 years ago

Sounds great. I can't think of any more checklist items for now

#2 Updated by Gerrit Code Review Bot over 1 year ago

Gerrit received a related patchset '1' for Issue #2438.
Uploader: Szilárd Páll ()
Change-Id: gromacs~master~Iaedf5fbdfd24a2d020983847815c2c21bac0f74c
Gerrit URL: https://gerrit.gromacs.org/7669

#3 Updated by Gerrit Code Review Bot over 1 year ago

Gerrit received a related patchset '1' for Issue #2438.
Uploader: Szilárd Páll ()
Change-Id: gromacs~master~I6dedf901f230d2b5f9838f315897186bd4bd55f8
Gerrit URL: https://gerrit.gromacs.org/7670

#4 Updated by Szilárd Páll over 1 year ago

  • Is duplicate of Task #2193: OpenCL code modernization assuming v1.2 reqd added

#5 Updated by Szilárd Páll over 1 year ago

  • Parent task set to #2454

#6 Updated by Szilárd Páll over 1 year ago

  • Status changed from New to In Progress
  • Assignee set to Szilárd Páll

#7 Updated by Mark Abraham about 1 year ago

Did teh memset get resolved? I see we still have nbnxn_oxl_clear_e_fshift?

#8 Updated by Szilárd Páll about 1 year ago

Mark Abraham wrote:

Did teh memset get resolved?

See gerrit.

I see we still have nbnxn_oxl_clear_e_fshift?

My judgement was that instead of calling three separate kernels for the couple of fshift's and el/lj energy outputs may be an overkill. Thoughts?

#9 Updated by Mark Abraham about 1 year ago

  • Status changed from In Progress to Resolved

All the bullet points are resolved by submitted patches now

#10 Updated by Mark Abraham about 1 year ago

Szilárd Páll wrote:

Mark Abraham wrote:

Did teh memset get resolved?

See gerrit.

Submitted.

I see we still have nbnxn_oxl_clear_e_fshift?

My judgement was that instead of calling three separate kernels for the couple of fshift's and el/lj energy outputs may be an overkill. Thoughts?

OK, a single kernel is better. Something like a struct containing fshift and energies would probably better all round (and then amenable to clEnqueueFillBuffer or similar). We just pull the whole thing back after energy-calc steps.

#11 Updated by Szilárd Páll about 1 year ago

Mark Abraham wrote:

Szilárd Páll wrote:

Mark Abraham wrote:

Did teh memset get resolved?

See gerrit.

Submitted.

I see we still have nbnxn_oxl_clear_e_fshift?

My judgement was that instead of calling three separate kernels for the couple of fshift's and el/lj energy outputs may be an overkill. Thoughts?

OK, a single kernel is better. Something like a struct containing fshift and energies would probably better all round (and then amenable to clEnqueueFillBuffer or similar). We just pull the whole thing back after energy-calc steps.

Indeed, a struct would be better.

#12 Updated by Mark Abraham about 1 year ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF