自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 使用PYNQ生成PWM波控制舵机/步进电机/机械臂

PYNQ控制舵机/机械臂

2023-04-17 22:36:42 2005 2

原创 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

原创 PID算法及在机械臂上的应用(附简单Python实现)

PID算法及其在机械臂上的应用(附简单Python实现框架)

2023-04-14 13:36:10 2621 2

隐马尔可夫模型(HMM)的前向算法和后向算法

前向算法的实现:用于计算观测序列的概率,通过递归计算前向概率值并最终得到结果。 后向算法的实现:与前向算法类似,但从观测序列的最后时刻往前递推计算后向概率,得出观测序列的概率。 适用人群:适合正在学习或研究隐马尔可夫模型(HMM)的学生、研究人员、以及对HMM感兴趣的工程师。 使用场景:可以用于理解HMM算法的工作原理、HMM模型的参数估计、隐状态序列的解码等。 目标:帮助用户理解HMM前向和后向算法,并通过实际代码实现来加深对理论的理解。

2024-08-19

PCF8591 IIC通信协议 AD/DA转换 Verilog实现代码

这个资源包含了PCF8591的ADC和DAC代码,使用的通信协议为IIC,使用的编程语言为Verilog。 PCF8591是一种可编程的模拟信号转换芯片,可以通过IIC总线进行通信控制。这个代码文件中的注释非常详细,可以帮助使用者更好地理解代码的功能和实现原理。 此外,作者在自己的博客中还提供了对这段代码的详细解释,可以帮助读者更深入地理解这个代码的工作原理。据作者自测,这个代码是100%可用的,可以直接使用。 如果您对Verilog和IIC通信协议感兴趣,或者需要使用PCF8591芯片进行模拟信号转换,这个资源可能会对您有所帮助。

2023-04-15

Xilinx pynq-z2 FPGA开发板原理图、板卡文件及约束文件

PYNQ-Z2是一款基于Xilinx Zynq-7000系列SoC的开发板,其中集成了FPGA和双核ARM Cortex-A9处理器,具有丰富的I/O接口和资源。该开发板可用于各种应用场景,如嵌入式系统设计、数字信号处理、机器学习等。 对于基于PYNQ的项目开发,开发者需要对开发板的管脚进行约束以满足特定的应用需求。为此,PYNQ-Z2开发板的原理图、板卡文件和约束文件可以提供帮助。原理图可以帮助开发者了解开发板的电路设计和管脚分配,板卡文件则可以提供开发板的相关信息和资源配置,而约束文件则可以定义管脚的约束和限制。 使用这些文件可以帮助开发者快速完成PYNQ-Z2开发板的项目开发,减少开发时间和提高开发效率。

2023-04-14

空空如也

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

TA关注的人

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