logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

游戏引擎学习第236天:GPU 概念概述

GPU的设计逐渐从一个专门处理图形渲染任务的硬件,发展成了一个能够执行大量并行计算的通用计算单元。最初,GPU是为了专门处理图形渲染任务而设计的,主要通过填充三角形和从纹理内存读取数据来执行特定的操作。然而,随着图形处理需求的变化以及计算机硬件的进步,GPU的设计逐步融入了更多通用计算的功能。在GPU的执行过程中,最基础的部分是大量的算术逻辑单元(ALU)。这些ALU的作用是执行各种算术操作,例如

文章图片
#游戏引擎#学习#c++
CppCon 2023 学习: Leveraging a Functional Approach for More Testable and Maintainable ROS 2 Code

ROS 2 是一种 机器人操作系统框架,主要特性如下:假设有 2 个节点:​Node 2Node 2 接收请求,并生成响应Response2=f(Request1,Parameters2)\text{Response}_2 = f(\text{Request}_1, \text{Parameters}_2)Response2​=f(Request1​,Parameters2​)Node 2 将响应

#学习
CppCon 2023 学习: Distributed Ranges: A Model for Building Distributed Data Structures,Algorithms, a

标准 C++ 并行编程依赖 Ranges 库通过范围(range)和视图(view)实现数据的声明式操作。迭代器概念(Iteration Concepts)泛化算法,使其可以接受各种类型的数据容器和视图。可扩展性(Extensible)执行策略允许选择顺序、并行或设备执行。使算法能适应 CPU/GPU 或多节点系统。数学模型点积的计算公式统一为∑i0n−1xi⋅yii0∑n−1​xi​⋅yi​算法

#学习#开发语言
CppCon 2023 学习:Tracy: a profiler you don’t want to miss

Tracy 是一个开源的实时性能分析工具(profiler),适用于 CPU 和 GPU,可以在应用程序运行时分析其性能。下面是 Tracy 的核心特点和优势:演讲强调:这次讲座不是“Tracy vs. 其他工具”,只是介绍 Tracy 本身。Donald E. Knuth 在 1974 年的论文《Structured Programming with go to Statements》中写道:T

#学习#c++23
CppCon 2023 学习: Coroutine Patterns and How to Use Them: Problems and Solutions Using Coroutines In

保存协程状态的对象默认 lazy 执行能变 eager会继承 executor保证对象活得比所有未完成的成员协程更久保证 lambda 对象的生命周期足够长对象必须活到所有成员协程结束lambda 生命周期必须覆盖协程周期所有后台任务必须在离开作用域前完成(join)1. 类中用 cleanup() 清理异步任务避免对象析构时还有任务在运行。2.绝不要在析构中使用 blockingWait()⇒阻

#学习
CppCon 2023 学习: CMake Successor Build Systems

并行性Job Pool 可以让 CMake/Ninja 精细控制不同任务的并行度。对 CPU 密集型工具(如 Sanitizers)很重要。可复现性Make/Ninja 基本没有保障。Meson、Gradle 提供工具链配置。Bazel 最强,可将工具链和构建配置完全视作输入,实现可复现构建。数学模型min⁡min​OutputfInputsToolchainsConfigOutputfInput

#学习#开发语言#c++
CppCon 2023 学习: CMake Successor Build Systems

并行性Job Pool 可以让 CMake/Ninja 精细控制不同任务的并行度。对 CPU 密集型工具(如 Sanitizers)很重要。可复现性Make/Ninja 基本没有保障。Meson、Gradle 提供工具链配置。Bazel 最强,可将工具链和构建配置完全视作输入,实现可复现构建。数学模型min⁡min​OutputfInputsToolchainsConfigOutputfInput

#学习#开发语言#c++
CppCon 2023 学习: C++ Memory Model:from C++11 to C++23

代码顺序 ≠ 执行顺序CPU 不一定按照你写的顺序执行指令。编译器优化循环展开(Loop unrolling)寄存器缓存重复计算向量化(SIMD / AVX)编译期常量计算CPU 优化乱序执行(OOO)多线程 / 超线程结果保证逻辑上最终结果保持不变,但实际执行的指令序列可能完全不同。好的,我们来对你提供的内容做详细解析,包括循环展开(Loop Unrolling)和死代码消除(Dead Code

#c++#学习#开发语言
CppCon 2023 学习: Can data-oriented-design be improved?

核心思想:数据是中心,程序是数据的变换核心目标:优化数据访问、提高变换效率区别于 OOP:不强调对象封装和继承,而强调数据流和变换数学抽象:程序可被视作函数组合DoutTn∘⋯∘T1DinDout​Tn​∘⋯∘T1​Din​Data∗outputFData∗inputData∗outputFData∗input意思是:程序可以被抽象为对数据的变换DatainputDatainput​:输入数据Da

#学习#c++#开发语言
CppCon 2023 学习: Cache friendly design in robot path planning

机器人路径规划是先规划路径再执行的决策问题,关注效率、安全和可行性。缓存友好型设计是程序性能优化方法,核心是理解 CPU 缓存机制,设计数据访问模式以减少缓存缺失,提高速度。好的,我们来对你提供的内容进行详细理解与解析,并结合公式和流程图说明。主要涉及缓存友好型设计对 CPU 性能的影响以及移动机器人路径规划的流程。1. 缓存友好型设计与 CPU 性能缓存友好设计关注CPU stall、缓存层次、

#学习#c++#开发语言
    共 101 条
  • 1
  • 2
  • 3
  • 11
  • 请选择