CoolFace
Datasetpublic

Jawad00100/C-to-Cuda

CUDA to C Code Conversion Dataset A large-scale dataset containing 8257 pairs of CUDA code and their equivalent C code conversions, generated using Google's Gemini 2.5 Flash model. Dataset Description This dataset provides high-quality CUDA to C code translations for training code translation models, studying parallel programming patterns, and developing automated code conversion tools. Source Data Original Dataset: mzubai/cass - CUDA code samples… See the full description on the dataset page: https://huggingface.co/datasets/Jawad00100/C-to-Cuda.

sourceHugging Faceupdated 11mo agoView on Hugging Face
1likes5downloads
Dataset Card

CUDA to C Code Conversion Dataset

A large-scale dataset containing 8257 pairs of CUDA code and their equivalent C code conversions, generated using Google's Gemini 2.5 Flash model.

Dataset Description

This dataset provides high-quality CUDA to C code translations for training code translation models, studying parallel programming patterns, and developing automated code conversion tools.

Source Data

  • —Original Dataset: mzubai/cass - CUDA code samples
  • —Conversion Model: Google Gemini 2.5 Flash with structured output
  • —Processing: Parallel processing with 10 API keys, rate limiting, and quality filtering

Dataset Statistics

  • —Total Samples: 8257 CUDA-C pairs
  • —Format: CSV with structured columns

Dataset Schema

ColumnTypeDescription
idintUnique identifier for each sample
filenamestringOriginal CUDA source filename
cuda_sourcestringOriginal CUDA code
c_codestringConverted C code equivalent

Usage Examples

Loading the Dataset

python
from datasets import load_dataset

# Load the dataset
dataset = load_dataset("your-username/cuda-to-c-conversion")

# Access the data
train_data = dataset['train']
print(f"Dataset size: {len(train_data)}")

# Example sample
sample = train_data[0]
print("CUDA Code:", sample['cuda_source'][:200] + "...")
print("C Code:", sample['c_code'][:200] + "...")

Training Code Translation Models

python
# Prepare for sequence-to-sequence training
cuda_codes = [sample['cuda_source'] for sample in train_data]
c_codes = [sample['c_code'] for sample in train_data]

# Use with transformers
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("codet5-base")
model = AutoModelForSeq2SeqLM.from_pretrained("codet5-base")

# Tokenize inputs
inputs = tokenizer(cuda_codes, truncation=True, padding=True, return_tensors="pt")
targets = tokenizer(c_codes, truncation=True, padding=True, return_tensors="pt")

Data Analysis

python
import pandas as pd

# Convert to pandas for analysis
df = pd.DataFrame(train_data)

# Basic statistics
print(f"Average CUDA code length: {df['cuda_source'].str.len().mean():.0f} chars")
print(f"Average C code length: {df['c_code'].str.len().mean():.0f} chars")

# Code complexity analysis
cuda_lines = df['cuda_source'].str.count('\n').mean()
c_lines = df['c_code'].str.count('\n').mean()
print(f"Average lines - CUDA: {cuda_lines:.1f}, C: {c_lines:.1f}")

Dataset Creation Process

  1. 1.Source: Started with CUDA code from mzubai/cass dataset
  2. 2.Conversion: Used Google Gemini 2.5 Flash with structured JSON output
  3. 3.Parallel Processing: 10 API keys with round-robin distribution and rate limiting
  4. 4.Quality Control: Removed failed conversions and error responses
  5. 5.Validation: Structured output validation using Pydantic models

Quality Assurance

Conversion Quality

  • —Structured Output: JSON schema validation ensures consistent format
  • —Error Filtering: Only successful conversions included (9.4% error rate removed)
  • —Manual Validation: Sample verification of conversion accuracy
  • —No Artifacts: Removed API error messages and malformed responses

Data Integrity

  • —Unique IDs: Each sample has a unique identifier
  • —Complete Pairs: All samples have both CUDA and C code
  • —Size Limits: Handles large code files (up to 1MB per field)
  • —Encoding: UTF-8 encoding for international character support

Use Cases

Research Applications

  • —Code Translation Models: Train CUDA↔C translation systems
  • —Programming Language Analysis: Study syntax and semantic differences
  • —Parallel Programming: Analyze parallelization patterns
  • —Code Generation: Develop automated code conversion tools

Educational Applications

  • —Learning Resources: Examples of CUDA to C conversions
  • —Curriculum Development: Teaching parallel programming concepts
  • —Code Comparison: Understanding different programming paradigms

Industrial Applications

  • —Legacy Code Migration: Automated CUDA to C conversion
  • —Performance Analysis: Compare parallel vs sequential implementations
  • —Code Optimization: Study efficient coding patterns

Limitations and Considerations

Technical Limitations

  • —Semantic Accuracy: Conversions may not be functionally identical
  • —Compilation: Generated C code may require manual adjustments
  • —Context: Limited by model's context window for very large files
  • —Complexity: Very complex CUDA kernels may not convert perfectly

Usage Guidelines

  • —Validation Recommended: Test converted code before production use
  • —Manual Review: Complex conversions should be manually verified
  • —Compilation Testing: Verify that generated C code compiles
  • —Performance: Converted code may have different performance characteristics

Dataset Metrics

MetricValue
Total Samples8257
Original CUDA Samples2,917,553
Average CUDA Length~500 characters
Average C Length~600 characters
File Size~12 MB
LanguagesCUDA, C

Citation

If you use this dataset in your research, please cite:

bibtex
@dataset{cuda_to_c_conversion_2024,
  title={CUDA to C Code Conversion Dataset},
  author={Generated using Google Gemini 2.5 Flash},
  year={2024},
  url={https://huggingface.co/datasets/your-username/cuda-to-c-conversion},
  note={Derived from mzubai/cass CUDA dataset},
  samples={2043}
}

License

This dataset is released under the same license terms as the original mzubai/cass dataset. Please refer to the original dataset for specific license information.

Acknowledgments

  • —Original Dataset: mzubai/cass for providing the CUDA source code
  • —Conversion Model: Google Gemini 2.5 Flash for high-quality code translation
  • —Processing: Parallel processing pipeline for efficient dataset generation

Updates and Versions

  • —v1.0: Initial release with 8257 CUDA-C pairs
  • —Quality: Error-filtered, validated conversions only
  • —Format: CSV with id, filename, cudasource, ccode columns

Dataset Size: 2043 samples File Format: CSV Encoding: UTF-8 Quality: Production-ready, error-filtered