自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(947)
  • 资源 (6)
  • 收藏
  • 关注

原创 第95节:多模型多卡推理管理

多模型推理:在同一硬件平台上同时部署多个不同或相同的深度学习模型,满足多任务需求。多卡推理:利用多块 GPU 资源,提升推理吞吐量与并发能力。目标:合理分配 GPU 资源,实现高效、低延迟的推理服务。

2025-09-21 14:15:42 184

原创 第94节:ONNX 模型在 GPU 部署

是一个开源的深度学习模型交换格式,旨在促进不同框架间的模型互操作。由微软、Facebook 和 AWS 等联合开发。支持主流框架如 PyTorch、TensorFlow、Caffe2 等导出与导入。

2025-09-21 14:15:30 215

原创 第93节:深度学习框架 GPU 后端比较(PyTorch vs TensorFlow)

PyTorch:Facebook 开发的动态计算图框架,近年来成为科研与工业界热门选择,强调灵活性和易用性。TensorFlow:Google 开发的静态计算图框架,广泛用于生产环境和大规模部署,现支持动态图(Eager Execution)。两者都支持 GPU 加速,底层均依赖 NVIDIA CUDA、cuDNN 等库。指标PyTorchTensorFlow灵活性高,适合研究和实验较高,支持动态图与静态图性能优化通过 XLA 和 TorchScript 支持静态图优化更强,XLA 加持。

2025-09-21 14:15:16 145

原创 第92节:TensorRT 简介与部署流程

TensorRT是 NVIDIA 提供的高性能深度学习推理优化库,专门针对 GPU 进行模型推理加速,特点包括:高效的网络结构优化和层融合支持 FP32、FP16、INT8 混合精度推理自动调优内存和计算资源支持多种深度学习框架模型导入(TensorFlow, PyTorch via ONNX 等)TensorRT 主要用于在 GPU 上快速、高效地部署训练好的深度学习模型,广泛应用于自动驾驶、视觉识别、语音处理等领域。步骤说明训练模型在 TensorFlow、PyTorch 等框架中。

2025-09-21 14:15:04 102

原创 第91节:GPU 上的批处理与向量化

定义:批处理是指一次性处理多个数据样本的操作,而非单个数据,常见于深度学习训练与推理中的多样本并行。目的提高计算资源利用率减少内存访问延迟提升吞吐量和带宽效率定义:向量化是指在硬件层面一次处理多个数据元素,利用 SIMD(单指令多数据)指令集和硬件特性提高吞吐量。在 GPU 中,向量化通常表现为一次内存访问加载多个数据,或通过数据布局优化实现。

2025-09-21 14:14:51 108

原创 第90节:GPU 加速卷积操作

卷积操作是深度学习中卷积神经网络(CNN)的核心计算,涉及输入特征图与卷积核的滑动窗口乘加计算。

2025-08-16 23:34:11 172

原创 第89节:cuDNN 使用基础

是由 NVIDIA 提供的深度神经网络加速库,基于 CUDA 构建,主要用于:高性能的卷积、池化、归一化、激活等操作支持 Tensor Core 混合精度加速(FP16/TF32)与 TensorFlow、PyTorch、MXNet 等框架集成。

2025-08-16 23:33:58 192

原创 第88节:cuBLAS 简介

cuBLAS是 NVIDIA 提供的基于 CUDA 的 GPU 加速BLAS(Basic Linear Algebra Subprograms)库,用于高性能线性代数运算,广泛应用于深度学习、科学计算、工程仿真等领域。它是 CUDA 平台上的BLAS 实现的 GPU 加速版本,具备以下特点:高度优化,底层使用Tensor Core、共享内存、流水调度等技术完整支持 BLAS Level 1/2/3 接口支持多种数据类型:FP32、FP64、FP16、BF16、INT8 等。

2025-08-16 23:33:44 173

原创 第87节:使用 Tensor Core 进行矩阵乘法

Tensor Core 的目标是加速,特别适用于深度学习训练与推理场景。本节重点讲解如何使用 Tensor Core 实现矩阵乘法。

2025-08-16 23:33:31 160

原创 第86节:Tensor Core 架构解析

特性描述首次引入Volta 架构(V100)发展历程加速对象GEMM、矩阵乘加、深度学习卷积支持数据类型FP16, BF16, TF32, FP8, INT8, INT4(取决于架构)

2025-08-16 23:33:16 223

原创 第85节:OpenCL 与多设备协同(Multi-Device Collaboration in OpenCL)

OpenCL 支持在多个设备(如多个 GPU、CPU、FPGA)之间进行并行任务调度。掌握多设备协同可以充分利用系统的所有计算资源,提升计算性能和资源利用率。

2025-08-16 23:33:04 135

原创 第84节:OpenCL 性能优化策略

性能优化是高效使用 OpenCL 的关键。由于 OpenCL 是跨平台的通用计算框架,它的优化策略涉及主机、设备、内存、计算结构、线程组织等多个维度。

2025-08-16 23:32:51 156

原创 第83节:OpenCL 同步机制

OpenCL 支持多种同步机制,用于保证不同命令之间、主机与设备之间、线程间的执行顺序与数据一致性。理解同步机制是实现正确且高效并行程序的关键。许多命令都可以传入::表示当前命令要等待的事件:输出当前命令的事件句柄,可用于后续同步cl_event write_event;clEnqueueWriteBuffer(queue, buffer, CL_FALSE, 0, size, data, 0, NULL, &write_event);cl_event kernel_event;clEnq

2025-08-16 23:32:36 95

原创 第82节:OpenCL 缓冲区管理

OpenCL 中的缓冲区(Buffer)是主机和设备之间传递数据的核心机制。理解缓冲区的创建、读写、映射以及释放过程,对于 OpenCL 编程至关重要。

2025-08-16 23:32:24 74

原创 第81节:OpenCL 线程模型

OpenCL 的线程模型定义了在并行计算中,线程如何组织、分组与调度。理解 OpenCL 的线程模型(NDRange、工作项、工作组)是高效并行编程的关键。

2025-08-16 23:32:08 153

原创 第80节:OpenCL 内核编译与运行

/ 内核代码字符串。// 等待所有指令完成。3. 创建命令队列(Command Queue):支持 1D、2D、3D 的线程分布。4. 编写并构建内核(Kernel)内核代码写在字符串中,或单独存储为。1. 获取平台与设备(前一节已讲)2. 创建上下文(Context):每个工作组的线程数;5. 分配内存缓冲区。

2025-08-16 23:31:56 120

原创 第79节:OpenCL 平台与设备管理

OpenCL 平台是 OpenCL 运行时环境的抽象,代表一组计算设备及其资源。每个平台对应一个或多个设备,如 CPU、GPU、加速器等。应用程序需要查询并选择合适的平台与设备进行计算任务。

2025-08-16 23:31:43 75

原创 第78节:OpenCL 与 CUDA 区别

OpenCL和CUDA都是用于 GPU 通用计算的编程框架,但设计理念、支持平台、编程模型等方面存在显著差异。了解它们的区别有助于选择合适的工具进行 GPU 加速开发。适用场景说明OpenCL需要跨平台、多硬件支持,异构计算环境CUDA专注 NVIDIA 硬件,追求最高性能和成熟工具。

2025-08-16 23:31:32 178

原创 第77节:OpenCL 简介与架构

是一个开放、跨平台的并行计算框架,由 Khronos Group 维护。旨在支持 CPU、GPU、FPGA 以及其他异构计算设备上的通用并行计算。提供统一的编程接口,实现跨硬件的可移植性。

2025-08-16 23:31:18 304

原创 第76节:光线追踪与 GPU 加速实现

光线追踪(Ray Tracing)是一种模拟光线传播路径以生成高度真实感图像的渲染技术。通过追踪光线与场景中物体的交互,计算光的反射、折射和阴影等效果。

2025-08-16 23:31:04 261

原创 第75节:GPU 实时渲染基本流程

实时渲染指的是计算机图形系统能够在用户交互或动画中,快速生成图像的过程,通常要求每秒刷新多帧(如60FPS及以上),保证画面流畅。

2025-08-14 21:46:54 135

原创 第74节:Vulkan Compute 管线

Vulkan Compute 管线是 Vulkan API 用于执行计算任务的独立渲染管线。它专注于通用计算,与图形渲染管线分开,支持高效并行计算。

2025-08-14 21:46:41 101

原创 第73节:OpenGL 计算着色器(Compute Shader)

计算着色器是 OpenGL 4.3 引入的一种可编程着色器类型,专门用于通用计算任务。它不属于传统的图形渲染管线,而是作为独立的计算单元执行并行计算。

2025-08-14 21:46:27 192

原创 第72节:GLSL/HLSL vs CUDA 编程差异

和是图形着色器语言,专用于编写 GPU 上的图形渲染着色器程序。CUDA是 NVIDIA 提供的通用并行计算平台和编程模型,用于在 GPU 上执行大规模通用计算任务。

2025-08-14 21:46:12 184

原创 第71节:GPGPU(通用计算)原理

利用图形处理单元(GPU)进行除图形渲染外的通用计算任务,发挥 GPU 强大的并行计算能力,处理科学计算、机器学习、图像处理等领域。

2025-08-14 21:45:58 289

原创 第70节:Vulkan 概述

Vulkan 是一种现代化、跨平台的低开销图形和计算 API,由 Khronos Group 维护。它旨在提供更接近硬件的控制,降低驱动程序开销,提升多线程和并发性能。

2025-08-14 21:45:45 411

原创 第69节:DirectX 与 HLSL 简介

DirectX是微软开发的一套多媒体应用编程接口(API),主要用于处理图形、音频、输入设备等。在图形渲染方面,DirectX 提供高性能的 3D 图形绘制能力,广泛应用于游戏和图形软件开发。是微软为 Direct3D 设计的高级着色器语言。类似于 GLSL,HLSL 用于编写顶点着色器、像素着色器和计算着色器,实现 GPU 上的可编程渲染管线。

2025-08-14 21:45:30 109

原创 第68节:OpenGL 管线基础

OpenGL 管线(Graphics Pipeline)是图形渲染过程中一系列固定或可编程的步骤,负责将几何数据转化为最终屏幕上的像素图像。它是图形渲染的核心流程。

2025-08-14 21:45:16 69

原创 第67节:GPU 图形 vs 通用计算

GPU 图形计算(Graphics Processing)主要指 GPU 用于图形渲染和图像处理的专用计算任务,如光栅化、着色器计算、三角形处理等。GPU 通用计算(GPGPU,General-Purpose GPU Computing)利用 GPU 强大的并行计算能力,处理非图形领域的计算任务,如科学计算、机器学习、数据分析等。

2025-08-14 21:45:00 151

原创 第66节:负载均衡策略

负载均衡是指在 GPU 并行计算中,将计算任务均匀分配给各个线程或线程块,避免某些线程或线程块工作过载而其他处于空闲状态,从而提升整体性能和资源利用率。

2025-08-14 21:44:46 84

原创 第65节:线程束(Warp)调度优化

Warp 是 GPU 中的基本执行单元,通常由32 个线程组成;这些线程在硬件中以 SIMD(单指令多数据)方式同步执行相同指令;Warp 是 GPU 线程调度和执行的最小单位。

2025-08-14 21:44:32 253

原创 第64节:多核调度调优策略

现代 GPU 包含多个流式多处理器(SM,Streaming Multiprocessors),每个 SM 可以独立调度多个线程块。多核调度优化指合理分配和调度线程块及资源,提升多个 SM 的协同效率和整体吞吐量。

2025-08-14 21:44:16 142

原创 第63节:数据访问模式剖析

数据访问模式是指程序在执行过程中对内存地址的访问方式,包括访问顺序、访问局部性和访问并发性等。在 GPU 编程中,合理的数据访问模式对性能影响极大。

2025-08-14 21:44:02 88

原创 第62节:Launch Configuration 选择

Launch Configuration 指的是 CUDA 内核启动时设置的**线程块数量(Grid Size)和线程块内线程数(Block Size)**的配置参数。正确选择 Launch Configuration 是提升 GPU 程序性能的关键。

2025-08-14 21:43:48 165

原创 第61节:Occupancy(占用率)优化技巧

Occupancy 指的是 GPU 上活跃的线程数与该设备理论上最大支持线程数的比例。高占用率意味着 GPU 计算单元被充分利用,从而提升并行性能。

2025-08-14 21:43:33 260

原创 第60节:内核粒度调优

内核粒度调优是指对 CUDA 内核函数(Kernel)进行细粒度性能优化,通过合理配置线程块大小、线程数量、资源使用,提升单个内核的执行效率和整体 GPU 利用率。

2025-08-13 18:50:30 81

原创 第59节:指令级并行优化

指令级并行是指处理器能够同时执行多条指令的能力,通过指令重排和流水线技术,充分利用硬件资源,提高执行效率。GPU 内核代码中提升 ILP 能够增加执行单元的利用率,减少等待时间。

2025-08-13 18:50:08 102

原创 第58节:识别瓶颈:计算 vs 内存 vs PCIe

若内核执行时间长,查看 Nsight Compute 指标,若内存带宽利用率高,判定内存瓶颈;GPU 的计算单元(CUDA 核心)达到饱和,性能受限于计算能力。访问内存(全局内存、共享内存等)成为限制性能的主要因素。优化内存访问模式(合并访问Coalescing),若内存带宽利用率低但执行时间长,考虑计算瓶颈。使用共享内存和常量内存,减少全局内存访问,减少数据传输量,使用统一内存或 P2P。内核执行时间被全局内存访问延迟拖慢,内核执行时间长但内存带宽利用率低,高内存带宽利用率但计算单元空闲,

2025-08-13 18:49:40 128

原创 第57节:Nsight Systems 与 Nsight Compute

系统级性能分析工具,聚焦应用的整体执行流,包含 CPU、GPU、操作系统等的事件;:GPU 内核级性能分析工具,深入分析 CUDA 内核的性能细节。

2025-08-13 18:49:12 426

原创 第56节:CUDA Profiler 使用

CUDA Profiler 是 NVIDIA 提供的性能分析工具,用于检测和分析 CUDA 程序的性能瓶颈,帮助开发者优化 GPU 代码。nvprof(命令行性能分析器,已被弃用);(内核性能分析器);(系统级性能分析器);工具名称功能描述适用场景nvprof命令行性能采集和分析工具简单快速性能采集,已逐步被替代内核级详细性能分析深入分析单个内核性能瓶颈跨 CPU-GPU 的系统级性能分析追踪应用整体执行流与并发情况。

2025-08-13 18:48:52 177

FreeWorld库,附加示例教程

VTK提供了vtkRenderer如何嵌入到QWidget中,初学者在使用时,图形软件框架不知如何设计,本人在此分享个人使用心得。我会通过介绍FreeWorld这个库,让大家了解VTK常用技巧,以及常用的API,还有一些可能大家在网上找不到的vtk api用法,以及会介绍vtk中现有版本存在的bug或不足等问题。在文章结束时我会分享FreeWorld库所有代码给大家。 FreeWorld封装了VTK三维窗口,鼠标交互事件信号、各种常用模型封装、各种常用方法封装,下面现介绍FreeWorld中窗口类FreeModelView 图形图像处理类项目,首先要有三维显示窗口、显示的内容(三维模型)、鼠标的交互处理。所以我们先要有这三个东西,然后将这三个东西添加到Qt环境中; 教程链接:http://t.csdn.cn/CkmPG

2023-06-28

基于VTK 牙龈生成算法

本实例主要封装了GingivalFollowing类来实现牙龈生成算法,其中为了实现次算法构建了Abutment(基牙)Tooth(牙齿)等基础数据结构,牙龈生成算法输入是多颗牙齿颈缘线、牙齿坐标系,输出是牙龈vtkPolyData、UV坐标、点法向,这些数据能够实现纹理贴图。并且算法支持实时计算,计算速度非常快,并且能够设置牙龈宽高、拉伸方向、网格密度、以及牙洞是否填充。 此示例采用了Qt作为UI框架、VTK作为图形环境,并且使用了FreeWorld这个库,此库对VTK进行了封装,能够方便快速的使用VTK并且提供了大量的算法。

2025-06-23

vtkPolyData模型压缩技术,压缩包内提供了draco静态库,以及测试程序和模型、以及源码 VS2019编译

封装了draco库,专门对vtkPolyData模型数据进行压缩保存 static bool writeDataToDrcFile(vtkPolyData *inputData, std::string fileName, const bool keepOrder = false); // 写入到文件 static bool writeDataToQByteArray(vtkPolyData *inputData, std::vector<char> &byteArrayBuffer, const bool keepOrder = false); // 写入到内存 static bool readDrcFileToData(std::string fileName, vtkPolyData *outputData); // 从文件读取 static bool readQByteArrayToData(std::vector<char> &byteArrayBuffer, vtkPolyData *outputData); // 从内存读取 我的工程使用Qt创建,必须在pro中添加 QMAKE_LFLAGS += /WHOLEARCHIVE:draco 否则编译后读取保存文件失败。

2025-06-21

基于Qt开发的图形化界面

适用于操作步骤的项目,界面样式请参考 https://blog.csdn.net/yumeiguo/article/details/148734391?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

2025-06-18

c++写的,参数化曲线计算 源码,不依赖任何库

// 参数化曲线对象,内部有三种数据,分别为: // 控制点(不在曲线上的点) // 型值点 (输入,能够描述曲线基本形状的点集) // 拟合点 (输出,经过参数化计算后,生成曲线上密密麻麻的点) nsNurbs::BSurfCurve pCurve; std::vector<Point3D> curveDefined; // 输入数据需要外部导入,型值点描述曲线基本形状的点集 curveDefined = loadPointClound("./input.txt"); // 加载曲线 pCurve.setDefinedPoints(curveDefined); // 设置型值点 pCurve.generateCurvePts(1000); // 生成拟合点,参数1000是拟合点数量 std::vector<Point3D> curveFitting = pCurve.getCurveFittingPoints(); // 获取拟合点 savePointClound("./output.txt", curveFitting); // 保存曲线

2025-06-18

VS2019编译 x64 OpenSceneGraph3.7 osgearth-3.4 osgQt sqlite3 release-1911-x64-gdal-3-0-4-ma

VS2019编译 x64 OpenSceneGraph3.7 osgearth-3.4 osgQt sqlite3 release-1911-x64-gdal-3-0-4-ma

2025-06-14

VTK 常用API示例代码

列举VTK常用API的C++示例代码。 教程连接地址 https://blog.csdn.net/yumeiguo/article/details/148103613?fromshare=blogdetail&sharetype=blogdetail&sharerId=148103613&sharerefer=PC&sharesource=yumeiguo&sharefrom=from_link VTK API 详解(162):vtkPainterPolyDataMapper - 高效绘制 VTK API 详解(161):vtkThreshold - 根据标量值提取 VTK API 详解(160):vtkExtractSelection - 提取选中数据 VTK API 详解(159):vtkSelection - 选取结构 VTK API 详解(158):vtkHardwareSelector - 硬件选取 VTK API 详解(157):vtkPointLocator - 快速查找最近点 VTK API 详解(156):vtkOBBTree - 面片空间查找结构 VTK API 详解(155):vtkCellLocator - 用于单元快速定位 VTK API 详解(154):vtkFrustumSource - 相机视锥体生成器 VTK API 详解(153):vtkPointsProjectedHull - 点集投影凸包 VTK API 详解(152):vtkLODActor - 多分辨率演员 VTK API 详解(151):vtkInteractorObserver - 监听器接口

2025-06-01

YOLO拳头训练集数据集3

YOLO拳头训练集数据集3

2025-01-11

YOLO拳头训练集数据集2

YOLO拳头训练集数据集2

2025-01-11

YOLO拳头训练集数据集1

YOLO拳头训练集数据集1

2025-01-11

YOLO手掌数据集训练集5

YOLO手掌数据集训练集5

2025-01-11

YOLO手掌数据集训练集3

YOLO手掌数据集训练集3

2025-01-11

YOLO手掌数据集训练集2

YOLO手掌数据集训练集2

2025-01-11

YOLO手掌数据集训练集

yolo

2025-01-11

vtk9.3+VS2019+cuda

vtk9.3 cuda版

2025-01-11

VTK9.2+VS2019+qt6

编译好的VTK9.2+VS2019+qt6

2025-01-11

各种类型的标定板PDF

calib.io_charuco_200x150_8x11_9_6_DICT_4X4 calib.io_checker_200x150_8x11_12 calib.io_circles_200x150_8x11_9_5 calib.io_circlesA_200x150_8x11_9_5 calib.io_kalibr_200x150_8x11_7

2025-01-10

CGAL5.5+boost1.8+VS2019

CGAL5.5源码、相关依赖的库

2023-06-29

VTK9.2、VS2019、qt6

VTK9.2、VS2019、qt6

2023-06-29

基于Qt画图板程序源码

qt画图板程序

2023-06-29

VTK应用CGAL布尔运算、三角剖分、补洞、模型偏置(膨胀)降采样、骨架提取

只要你的工程有VTK、CGAL5.5环境就可以使用。

2023-06-29

CCCoreLib源码、lib、dll(vs2019编译器)适用于QtCreator工程打开

CloudCompare软件的核心算法库,使用QtCreator创建的工程 使用VS2019编译器进行编译

2023-06-28

Qt Creator+opengl实现四元数鼠标控制轨迹球

Qt Creator+opengl实现鼠标交互,控制模型任意旋转,实现轨迹球, 里面的void Widget::drawarrow(GLdouble x0, GLdouble y0, GLdouble z0, GLdouble x1, GLdouble y1, GLdouble z1)这个函数实现,空间任意两点绘制箭头的。

2014-03-14

基于QT写字板实现

基于QT实现 写字板程序,界面美化过。主要功能调节笔粗细,线段,矩形,圆,椭圆,橡皮擦,颜色,图像旋转,镜像

2019-01-15

opengl简单实现鼠标交互

Qt+OPENGL 实现鼠标交互时间,控制物体任意旋转,程序简单易懂,不是用轨迹球,四元数实现的。

2014-03-14

QT对XML增删查改读取,节点自定义,键值自定义

QT对XML进行,创建文件,添加节点,查找节点,删除节点,在节点下添加键值,读取指定节点下键值。最多支持4层节点。如果要需要在多级的节点进行操作,可以参照我的函数进行添加重载函数,很方便的。

2014-05-05

SQLserver2000数据库图片的存储

在VC++6.0下对server2000的图片存储的操作。

2012-03-20

VC++6.0的OPENGL漫游的实现---图书管理系统

基于VC++6.0的opengl虚拟场景漫游的设计

2012-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除