backend-conventions

Document JustRelax.jl backend module structures and ParallelStencil initialization rules.

40|12|Updated Sep 1, 2021
One-click install
npx skills add https://github.com/PTsolvers/JustRelax.jl --skill backend-conventions-ptsolvers
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: backend-conventions
Source: https://github.com/PTsolvers/JustRelax.jl/tree/main/.claude/skills/backend-conventions
Command: npx skills add https://github.com/PTsolvers/JustRelax.jl --skill backend-conventions-ptsolvers

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

JustRelax.jl handles multiple CPU/CUDA/AMDGPU backends. This skill unit explains the conventions and structure for developing and using these backends.

Core Features & Use Cases

  • Backend Structure: Details the module structure and package extensions.
  • Initialization Rules: Describes ParallelStencil initialization for different backends.
  • Use Case: When adding or modifying kernels or anything device-related, use this skill to ensure compatibility and proper implementation across backends.

Quick Start

Use the backend-conventions skill to understand how to implement a new backend for JustRelax.jl by following the outlined structure and rules.

Frequently Asked Questions about backend-conventions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new GPU backend to a Julia package using ParallelStencil?

JustRelax.jl manages multiple CPU, CUDA, and AMDGPU backends by defining module structures, package extensions, and ParallelStencil initialization rules to ensure device compatibility.

How does JustRelax.jl handle CPU, CUDA, and AMDGPU backend switching?

JustRelax.jl manages multiple CPU, CUDA, and AMDGPU backends by defining module structures, package extensions, and ParallelStencil initialization rules to ensure device compatibility and ease of use.

How do I structure package extensions for different hardware backends in Julia?

Backend structure for CUDA and AMDGPU in Julia requires defining specific module structures and package extensions that enable conditional loading and proper initialization across different hardware devices.

Can I use ParallelStencil initialization rules for both CUDA and AMDGPU backends?

Yes, ParallelStencil initialization rules apply to both CUDA and AMDGPU backends, ensuring that kernels and device-related modifications maintain compatibility and proper implementation across different hardware architectures.

What are the limitations when modifying kernels for multi-backend compatibility in Julia?

When modifying kernels for multi-backend compatibility in Julia, limitations arise from strictly following the defined ParallelStencil initialization rules and module structures to avoid breaking device-specific implementations.