- 博客(15)
- 收藏
- 关注
原创 CUDA 编程学习 (5)——内存访问性能
现代DRAM结构由于核心速度限制,通过burst模式和多Banks结构提高带宽。CUDA中,warp级聚合内存访问减少DRAM请求,提升效率。分块访问模式通过将数据加载到共享内存中,降低全局内存访问频率,进一步优化CUDA内存访问性能。
2024-11-11 11:19:30 431
原创 CUDA编程学习 (4)——thread执行效率
这篇文章探讨了CUDA编程中的warp和SIMD概念,以及控制分歧对性能的影响。warp是CUDA中线程调度的基本单位,每个warp包含32个线程,以SIMD方式执行相同指令。控制分歧发生在同一warp中线程因不同控制路径而导致执行效率下降。文章通过向量加法示例分析了控制分歧的影响,表明只有在特定情况下(如线程索引超出范围)才会产生控制分歧,其对性能影响通常较小。总体而言,合理设计数据结构和算法可以降低控制分歧,提升CUDA程序的性能。
2024-10-25 22:08:38 746
原创 CUDA编程学习 (3)——内存和数据定位
这段文字详细介绍了CUDA编程中的内存管理和数据定位。首先,强调了GPU的内存带宽与浮点计算能力之间的关系,指出性能瓶颈主要来源于内存访问的限制。接着,通过矩阵乘法的示例,展示了如何利用共享内存提高性能,介绍了内存类型(如全局内存、常量内存、寄存器和共享内存)及其访问方式。此外,讨论了Tiling技术,通过将数据划分为小块来优化内存访问。Tiling的有效实现需要线程的同步,以确保在加载和计算阶段的正确执行。最后,文中提供了处理任意大小矩阵的方法,说明如何在矩阵乘法中避免无效计算并管理边界条件。
2024-10-25 21:58:02 637
原创 CUDA编程学习 (2)——CUDA并行性模型
这篇文章深入探讨了CUDA编程中的并行性模型,重点介绍了基于kernel的单指令多数据(SPMD)编程。首先,通过向量加法示例,展示了CUDA内核函数的编写与调用,并解释了__global__、__device__和__host__的不同用法。接着,文章扩展到多维网格配置,演示如何处理图像数据,如RGB转灰度和图像模糊。最后,讨论了线程调度及其透明扩展性,强调了warp执行和GPU资源管理。
2024-10-25 21:46:34 992
原创 CUDA编程学习 (1)——CUDA C介绍
这篇文章是关于CUDA编程的基础介绍,主要聚焦于CUDA C的概念与内存管理。文章首先阐明了CUDA的异构计算模型,区分了CPU(host)和GPU(device)的角色,并介绍了它们之间的数据移动和通信机制。接着,详细说明了CUDA程序的执行流程,包括内存分配、数据传输和核函数的调用。
2024-10-25 21:37:46 887
原创 医学生还在为药方头疼?看AI-AGENT如何一键读懂药品信息!——基于RAG技术与多模态模型的智能药方分析专家构建教程
开发一个基于RAG(Retrieval-Augmented Generation)技术的智能对话机器人,能够从药单图片中提取信息,并结合大模型分析药品信息,推测病情,进一步为用户提供健康咨询。项目亮点包括OCR图像文本提取、结合NVIDIA LLaMA 3大模型的药品分析与病情推测、以及基于提取信息的智能对话功能。此系统特别适用于医疗场景中的辅助诊断和用户健康咨询。
2024-08-18 19:03:38 1022 2
原创 无监督学习聚类算法的评价指标
确定聚类技术获得的结果的质量是无监督机器学习中的一个关键问题。Jon Kleinberg 建立了聚类的不可能定理。因此,大量的研究提出了评估聚类结果质量的技术,这取决于聚类问题的特征和用于聚类数据的算法技术。
2023-07-30 11:31:06 1317 1
原创 Vue 和 Flask 前后端分离教程(二)To-Do List
本教程将指导您如何使用 Flask, Vue 3 和 Bootstrap 5 创建一个前后端分离的 To-Do List 应用程序。我们将首先搭建 Flask 后端,然后创建 Vue 前端并将其与 Flask 后端连接。
2023-04-17 16:11:00 685 2
原创 Vue 和 Flask 前后端分离教程(一)
在本教程中,我们将学习如何使用 Vue.js(前端框架)和 Flask(后端框架)构建一个简单的前后端分离应用。本教程假设你对 HTML、CSS 和 JavaScript 有基本了解。让我们开始吧!
2023-04-16 23:45:15 4964 2
原创 Vue.js基础教学
Vue.js 是一款轻量级、易学的前端框架,它是用于构建用户界面的渐进式框架。在这篇教程中,我们将介绍 Vue.js 的基础概念,并通过实际示例来帮助你了解 JavaScript 语法。
2023-04-16 17:50:13 288
原创 Flask基础教学(二)
在这篇教学中,我们介绍了如何使用 Flask 快速搭建一个包含用户认证和数据库的 Web 应用。我们首先介绍了如何使用 Flask SQLAlchemy 扩展来连接 SQLite 数据库,并创建了一个简单的数据模型。接着,我们使用 Flask-Login 扩展来实现用户认证和登录保护。最后,我们使用模板引擎 Jinja2 来创建网页界面,并添加了注册、登录、注销等功能。这篇教学适合有一定 Flask 基础的开发者,但我们尽可能详细地讲解每一步,帮助读者理解和掌握相关的技术和工具。如果你想学习如何构建完整
2023-04-16 01:35:16 229 1
原创 Flask 基础教学(一)
本教程旨在为初学者提供一个关于 Flask 基础知识的全面介绍。Flask 是一个轻量级的 Python Web 框架,非常适合新手入门。在本教程中,我们将从环境准备和 Flask 安装开始,然后创建一个简单的 Flask 应用,介绍路由和视图函数,以及如何使用模板渲染和处理静态文件。此外,我们还将探讨如何处理表单数据,并简要介绍部署 Flask 应用的过程。在阅读本教程后,您将了解 Flask 的基本概念,为构建自己的 Web 应用奠定坚实的基础。
2023-04-15 20:19:46 2330 4
原创 IIC通信协议详解 & PCF8591应用(Verilog实现FPGA)
该文章结合PCF8591 8-bit AD/DA 模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂。该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读data sheet。之后可能会更新如何将IIC的Verilog实现变为一个IP核,并在pynq-Z2板子上使用。
2023-04-14 20:39:16 2423 33
隐马尔可夫模型(HMM)的前向算法和后向算法
2024-08-19
PCF8591 IIC通信协议 AD/DA转换 Verilog实现代码
2023-04-15
Xilinx pynq-z2 FPGA开发板原理图、板卡文件及约束文件
2023-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人