원클릭으로
paracodex-cuda-sycl-step1
ParaCodex prompt for cuda to sycl step1 (implementation) step.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
ParaCodex prompt for cuda to sycl step1 (implementation) step.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
ParaCodex baseline skill: translate serial / parallel code to GPU-offloaded target API, optimize, compile, and run — all in a single session.
ParaCodex prompt for cuda to hip analysis step.
ParaCodex prompt for cuda to hip step1 (implementation) step.
ParaCodex prompt for cuda to hip step2 (optimization) step.
ParaCodex prompt for cuda ocl analysis step.
ParaCodex prompt for cuda ocl step1 step.
| name | paracodex-cuda-sycl-step1 |
| description | ParaCodex prompt for cuda to sycl step1 (implementation) step. |
Directory: {kernel_dir}/
Files: {file_listing}
Reference: {kernel_dir}/analysis.md
Required:
# Baseline CUDA output is in baseline_output.txt in {kernel_dir}/
MANDATORY: Create sycl_migration_plan.md in {kernel_dir} using template in references/output.md.
Reference: references/examples.md (dpct usage).
system_info_summary.txt; push to the largest short-run, memory-safe input that should load the GPU meaningfully on this device.If dpct (Compatibility Tool) or syclomatic is available, you may use it to convert source files.
CRITICAL: If dpct or syclomatic is NOT installed, DO NOT attempt to install it via apt or by downloading packages. Proceed immediately to perform the migration manually.
# Example if available:
dpct --in-root=. --out-root=dpct_output {source_file}.cu
try/catch sycl::exception).sycl::queue q{sycl::gpu_selector_v};
T* d_ptr = sycl::malloc_device<T>(N, q);
q.memcpy(d_ptr, h_ptr, N * sizeof(T)).wait();
q.parallel_for(sycl::nd_range<1>{global, local}, [=](sycl::nd_item<1> it) {
int i = it.get_global_id(0);
// kernel body
}).wait();
q.memcpy(h_ptr, d_ptr, N * sizeof(T)).wait();
sycl::free(d_ptr, q);
q.submit([&](sycl::handler& h){ ... }) with chained events (.depends_on()) to overlap transfers with compute. For strictly linear pipelines, sycl::property::queue::in_order{} is a cleaner alternative — no explicit depends_on needed:
sycl::queue q{sycl::gpu_selector_v, sycl::property::queue::in_order{}};
// All operations execute in submission order automatically
icpx (the environment manages the correct SYCL compiler).<RUN_ARGS>, <PROGRAM_NAME>, <SOURCE_FILES>, etc.) with real values.{clean_cmd_str}
{build_cmd_str}
timeout 300 {run_cmd_str} > sycl_output.txt 2>&1
The final deliverable must also support its normal run path without manual placeholder overrides.
diff baseline_output.txt sycl_output.txt
.wait() calls in the hot path.{nsys_profile_cmd} > {profile_log_path} 2>&1 produces GPU kernel information in the log.dpct is missing, do it manually.