#C语言
OOP-in-C
OOP-in-C项目展示了C语言中实现面向对象编程的核心概念:封装、继承和多态。项目提供代码示例、视频教程和PDF文档,适用于桌面和嵌入式系统开发。支持跨平台编译,为开发者学习和应用C语言OOP技术提供了实用资源。
llm.c
llm.c是一个使用纯C和CUDA实现的高效轻量级语言模型训练框架。该项目不依赖PyTorch或cPython等大型框架,通过简洁代码实现GPT-2和GPT-3系列模型的预训练。llm.c支持单GPU、多GPU和多节点训练,提供详细教程和实验示例。项目在保持代码可读性的同时追求高性能,适用于教育和实际应用。此外,llm.c支持多种硬件平台,并有多个编程语言的移植版本。
smolar
smolar是一个开源的C语言多维数组库,类似numpy但更轻量,仅包含一个文件。目前支持float类型的N维数组,实现了创建、初始化、遍历和广播等基本功能。该项目探索多维数组实现原理,适用于学习和教育目的。未来计划扩展数组操作、支持更多数据类型,并引入并行计算提升性能。
acwj
acwj是一个开源项目,记录了构建C语言子集自编译编译器的完整过程。项目详细介绍了从词法分析到代码生成的各个步骤,涵盖变量、函数、指针等C语言特性的实现。它还包括ARM和6809等不同目标平台的后端开发。acwj提供了理论解释和实践指导,是学习编译原理和实现编译器的有价值参考资源。
tensor
该项目用C语言实现了一个简单的1D浮点张量库,功能类似PyTorch的Tensor和NumPy的ndarray。库支持高效切片操作,并提供Python接口。通过展示张量对象如何管理Storage和View来实现高效内存利用,帮助开发者理解底层张量操作原理。项目还演示了如何将C代码封装为Python模块,并使用pytest进行测试。
llama2.c
llama2.c是一个用纯C语言实现的Llama 2模型推理引擎,仅需700行代码即可运行PyTorch训练的模型。项目设计简洁易用,提供从训练到推理的完整方案,支持Meta官方和自定义小型Llama 2模型。通过模型量化技术,llama2.c能够提升推理速度并缩小模型体积,为轻量级大语言模型部署提供了高效解决方案。
The-C-20-Masterclass-Source-Code
此项目是一个C++20新标准的教程源代码仓库,提供了学习现代C++编程的资源。仓库包含C++20新特性和改进的代码示例,有助于开发者掌握最新的C++编程技巧。项目内容适合不同水平的C++程序员,为学习C++语言的最新发展提供了实用的参考资料。
base64
这是一个C99实现的Base64流式编解码库,支持多种SIMD指令集和OpenMP加速。库提供简单的字符串编解码函数,注重性能、易用性和代码优雅。在x86平台上,库会进行运行时特性检测,自动选择最优编解码方案,显著提升性能。支持AVX2、AVX512、NEON等多种SIMD指令集,适用于不同架构的处理器。
Mojoc
Mojoc是一个开源的跨平台C语言游戏引擎,使用OpenGLES3,当前支持IOS和Android。其核心理念是简化复杂概念,使其更为简洁高效。无需第三方库,仅依赖标准C库,并采用独特的面向对象C编程模型。Mojoc适合学习和理解C语言编程,提供组件化架构、状态机和消息驱动机制。未来将支持Vulkan、Metal和D3D等图形模块,并计划推出游戏编辑器和自定义脚本语言。