自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (2)
  • 收藏
  • 关注

原创 基于 dGPU部署NanoDB,实现基于clip和faiss-gpu的高性能多模态检索

当前是基于Jetson实现的,并没有在dGPU上部署的说明。为此, 参考上述的项目实现了在dGPU的NanoDB的部署,如T4。下面是具体的部署过程。整个部署使用docker实现,因为涉及依赖库较多,普通的物理机部署较为复杂。

2024-12-12 16:36:40 146

原创 基于Cursor + Ollama + Qwen2.5-coder搭建本地编码助手

为了能够实现整个搭建过程,首先需要准备大模型服务,并且使用本地部署大模型实现本地的编码助手。

2024-11-12 17:16:33 10283 5

原创 Qwen大模型手动部署Ollama

如果编译llama.cpp的测试工具main,在llama.cpp目录执行make -j,会在当前目录生成main文件。1> 将qwen的huggingface safetensors转为llama.cpp的二进制文件。若重新生成,需先删除之前的converted.bin,否则报错。2> 测试转换的模型是否能正常运行。安装llama.cpp依赖。

2024-10-16 14:12:12 406

原创 Ollama及其Open-WebUI部署更新

启动、关闭ollama。

2024-10-15 17:25:06 3907

原创 LLaVA多模态大模型环境搭建

LLaVA 的早期实验表明,它展示出令人印象深刻的多模型聊天能力,有时会表现出多模型 GPT-4 在未见过的图像/指令上的行为,并在合成多模型指令遵循数据集上获得与 GPT-4 相比 85.1% 的相对分数。总之,LLaVA 的主要功能和特点是通过使用机器生成的指令遵循数据对大型语言模型进行指令调整,以提高新任务的零射击能力,并在多模态领域展示出令人印象深刻的聊天能力。设置为较低的值时,预测词的概率会变尖锐,这意味着选择最有可能的词的概率更高。可以分析图像,描述图像,进行物体识别,分析理解场景。

2024-10-15 15:57:26 292

原创 Grounded-SAM Demo部署搭建

(5)inpainting:通过结合Grounding DINO + Segment Anything + Stable Diffusion实现文本交换并替换目标对象(需要指定文本提示和inpaint提示)。(6)automatic:通过结合BLIP + Grounding DINO + Segment Anything实现非交互式检测+分割(无需指定提示)。(4)seg:通过结合Grounding DINO和Segment Anything实现文本交互,实现检测+分割(需要指定文本提示)。

2024-10-12 17:13:12 641

原创 基于AutoGen+Ollama+Litellm构建知识库问答系统

之前已经。但是随着智能体的发展,基于智能体构建知识库问答系统逐渐成为主流。下面就以多智能体框架AutoGen、托管大型语言模型的平台Ollama、模型选择和切换工具Litellm为基础构建一个多智能体的知识库问答系统。同时搭建一个多智能体对话系统。

2024-10-12 16:05:27 580

原创 基于大模型LLama2+Langchain构建知识库问答系统

知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。传统知识库搜索系统基于关键字匹配,缺少对用户问题理解和答案二次处理能力。为保证推荐系统的实效性和准确性,需要大量的数据/算法/软件工程师的人力投入和包括硬件在内的物力投入。其次,为了进一步提高搜索准确率,如何引导用户搜索描述更加准确和充分利用用户行为优化搜索引擎也是常见的用户痛点。此外,如何根据企业知识库直接给出用户提问的答案也是众多企业中会遇见的技术瓶颈。

2024-10-11 19:43:49 1282 2

原创 如何基于pycharm调试open-webui的backend

由于使用了uvicorn异步web服务,因此不能直接创建python类型的Debug Configurations,而需要创建一个FastAPI类型的Debug Configurations。点击保存后,即可类似python脚本进行正常调试。注意,可能还需要其他的环境变量需要设置。上述完成整个环境配置,接下来开始配置调试工程。

2024-04-10 17:34:03 851 2

原创 一维数组映射为上三角阵实现

运行以下命令,即可生成一个上三角阵,其中5表示生成上三角阵的维度为5, 3表示将数组A的下标3对应的上三角阵的坐标标记出来,用于验证准确性。另外,第二个参数(3)不能大于n(n+1)/2,其中n为上三角阵的维度。以上是包含对角线的上三角阵的生成方式。

2023-12-25 16:34:27 516

原创 std::shared_ptr如何释放管理权限并且不销毁管理的裸指针的资源

std::shared_ptr是一个智能指针,它会自动管理其指向的对象的生命周期。当std::shared_ptr的引用计数变为0时,它会自动删除其管理的对象。因此,通常情况下,我们不能让std::shared_ptr释放其管理的对象但不删除该对象。请注意,这种做法可能会导致内存泄漏,因为你需要手动删除p来释放内存。在这个例子中,当ptr的引用计数变为0时,它不会删除其管理的int(10),因为我们提供了一个什么都不做的删除器。然而,如果你确实需要这样做,你可以使用一个自定义的删除器。

2023-09-22 10:54:46 632

原创 C/C++ 静态变量初始化顺序的不确定性导致崩溃

但是如果还使用sg_map的定义放到函数register中作为局部变量使用就不会有这样的问题,原因是sg_map是一个局部静态变量,它在A::register函数中被定义。如果B::a的初始化过程早于sg_map,那么当调用register时,sg_map还未初始化,这时如何对sg_map进行insert操作就会产生崩溃,也就是segment fault错误。由于静态变量初始化顺序的不确定性导致的。如果使用静态变量,并且在不同的编译单元中有不同的静态变量,最好不要使用全局静态变量,而是使用局部静态变量。

2023-09-19 16:20:07 427

原创 如何使用GitHub Desktop在PR时只提交某个commit

先切换回主分支main(提交commit的分支),然后选择要合并到上游仓库的commit,然后右键选择cherry-pick即可完成本地合并到新创建的分支。查看我们仓库的远端是否是我们自己fork的仓库地址,这里不能是上游仓库,因为我们可能没有权限。push完成分支之后我们既可以在github.com的fork的仓库里看到新创建的分支。使用github的时候,有时我们在自己fork的仓库修改后需要PR合并到上游仓库。这时会弹出此commit要提交到的分支,选择刚创建的分支即可。3. push新创建的分支。

2023-08-23 17:13:54 655

原创 解决pycharm报Cannot find remote credentials for target config com.jetbrains.plugins.remotesdk.target的方法

最后将工程目录下的.idea目录删除,然后重新创建工程。再将之前的解释器全部删除,重新创建即解决了这个问题。使用的是ssh方式,解释器使用的是conda里的自定义的python。后来,尝试了几种方法,都没法解决,比如删了解释器重新添加等。

2023-08-16 14:52:08 5005 1

原创 基于FFmpeg + CV-CUDA实现高性能硬件解码与硬件预处理操作 —— YUV420SP(NV12) => BRG24 零拷贝高性能

基于FFmpeg + CV-CUDA实现高性能硬件解码与硬件预处理操作 ,实现YUV420SP(NV12) => BRG24,零拷贝高性能。

2023-08-04 11:12:47 701

原创 ModelArts中使用自定义镜像部署在线服务时,基于Dockerfile中的CMD命令启动容器,容器会自动退出的解决办法

ModelArts中使用自定义镜像部署在线服务时,基于Dockerfile中的CMD命令启动容器,容器会自动退出的解决办法。

2023-02-09 16:18:34 595

原创 ModelArts中使用自定义镜像创建为AI应用并部署服务方法

ModelArts中使用自定义镜像创建AI应用并部署在线服务的方法过程。

2023-02-09 16:13:13 696

原创 RV1808/1126使用RKNN作为MediaPipe推理后端开发步骤及ONNX转RKNN模型

目录1 基于RKNN推理后端集成1.1 依赖库配置1.2 添加计算单元Calculators1.3 增加rknn后端调用接口1.4 增加计算图1.5 增加动态库生成规则1.6 编译1.7 运行配置1.7.1 基于opencv的resize配置1.7.2 基于rag的resize配置2 RKNN模型转换1 基于RKNN推理后端集成RKNN SDK为RK1808等带有NPU 的平台提供编程接口...

2022-05-30 20:38:37 2368 5

原创 瑞芯微平台(RV1126)基于轻量级推理框架TengineInferpipe实现tengine后端的NPU部署应用

TengineInferpipe的简介参考​​​​​​TengineInferPipe在Jetson平台基于TensorRT后端Demo实现_space01的博客-优快云博客。瑞芯微平台(RV1126)建议使用docker环境交叉编译TengineInferPipe,首先需要安装docker,并启动docker服务。1. 拷贝tengine动态库通过交叉编译工具编译的tengine库拷贝到TengineInferPipe的目录下。tengine的交叉编译方法参考RV1126编译tengine_陈.

2022-05-16 14:48:47 1089

原创 TengineInferPipe在Jetson平台基于TensorRT后端Demo实现

​​​​​1.TengineInferPipe简介TengineInferPipe 是由 OPEN AI LAB 基于mediapipe框架进行改进、迭代的一套低代码、模块化的算法落地框架。通过解析部署配置文件,构建整个部署流程。可以用于快速构建算法部署sdk,以及可以作为一些可视化部署方案的中间层。其基本数据流程图如下图所示。2. 基于TensorRT后端Demo实现2.1 环境需求1)bazel >= 3.7 参考 bazel安装说明 安装bazel到系统中,或者下载对..

2022-05-16 14:20:42 335

原创 Jetson平台编译Tengine

​​​​​​1. Tengine简介Tengine于2017年在GitHub( https://github.com/OAID/Tengine )开源,是OPEN AI LAB(开放智能)推出的自主知识产权的边缘AI计算框架,致力于解决AIoT产业链碎片化问题,加速AI产业化落地。Tengine兼容多种操作系统和深度学习算法框架,简化和加速面向场景的AI算法在嵌入式边缘设备上快速迁移,以及实际应用部署落地,可以十倍提升基础开发的效率。Tengine一方面可以通过异构计算技术同时调用CPU、GPU、DSP

2022-05-16 13:25:44 583

原创 ByteTrack Demo搭建

ByteTack的Demo基于docker搭建。步骤如下:1. 下载ByteTrack源码git clone https://github.com/ifzhang/ByteTrack.git2.docker镜像准备cd ByteTrack && \docker build -t bytetrack:latest 3. 模型准备这里使用已经训练好的模型bytetrack_s_mot17.pth.tar,下载地址为bytetrack_s_mot17[goo..

2022-05-15 13:17:26 1367

原创 Triton服务器部署Yolov5s模型应用

目录1. Triton介绍2.Yolov5s模型部署2.1Triton服务端部署2.2Triton客户端部署1. Triton介绍NVIDIA Triton推理服务器是NVIDIA推出的开源推理框架,主要为用户提供在云和边缘推理上部署的解决方案。NVIDIA Triton 推理服务器 具有以下的特性:支持多种开源框架的部署,包括TensorFlow/PyTorch/ONNX Runtime/TensorRT 等,同时也支持用户提供自定义的服务后端(back...

2022-05-15 13:09:28 1437 2

原创 Jetson查看SM单元信息命令,包括threads per block, shared memory per block等

1. 在Jetson平台,使用以下命令搜索deviceQuery命令find / -name "deviceQuery"2. 使用bin/目录下的deviceQuery命令运行。/usr/local/cuda-10.2/samples/bin/aarch64/linux/release/deviceQuery

2022-05-14 21:21:13 312

原创 CUDA性能优化技巧

1.使用shared memory如果在kernel函数中,需要对global memory同一个数据多次访问,最好使用shared memory,先将数据从globalmemory拷贝到shared memory中,然后使用shared memory中数据进行读取。如果仅读取一次,则使用shared memory效果不大。2.使用限定符__restrict__提高性能对于read-only的指针,可以使用const * __restrict__进行限定,提高性能,如下面的ker..

2022-05-14 21:08:29 1296

原创 caffe升级到cuda10.2 + cudnn 8方法

将caffe的环境升级到cuda10.2 + cudnn8时,需进行下列修改,否则无法完成编译。1)include/caffe/util/device_alternate.hpp 将头文件#include <driver_types.h>放置在前面,如下:#include <driver_types.h> // cuda driver types#include <cublas_v2.h>#include <cuda.h>#...

2022-05-14 21:06:48 525

原创 调用CUDA kernel函数后,报错“invalid configuration argument”

调用CUDA kernel函数后,报错“invalid configuration argument”排查方法:1)使用cudaGetLastError()确定是哪个kernel函数导致的。2)检查kernel<<<GridDim,BlockDim>>>();其中,grid dim在前,block dim在后。注意:调用CUDA kernel函数,如果有指针,必须所有的指针都能够被GPU访问。...

2022-05-14 21:00:46 4958

原创 TensorRT使用自定义Plugin注意

1. plugin中的enque的inputs、outpus解释 int RefineDetectorLayerPlugin::enqueue(int batchSize, const void* const* inputs, void** outputs, void* workspace, cudaStream_t stream);inputs和outputs是一个数组,数组的内存储的是每一个输入或输出层的NCHW信息。如果refinedet层,inputs有8个输入,则inputs是一..

2022-05-14 20:53:31 300

原创 docker环境安装deepstream

1. 拉取镜像:dockerpullnvcr.io/nvidia/deepstream:5.1-21.02-samples2. deepstream实时预览xhost +如果需要显示,xhost +必须在创建docker实例之前执行一次,之后每次start docker之前都需要执行xhost +3. 启动a)指定gpudocker run --gpus '"'device=0'"' -it -p 2022:22 -v $PWD:/opt/nvidia/shar...

2022-05-14 20:45:00 904

原创 Jetson设置固定IP和DNS方法

打开/etc/network/interfaces文件:# interfaces(5) file used by ifup(8) and ifdown(8)# Include files from /etc/network/interfaces.d:source-directory /etc/network/interfaces.dsource interfaces.d/eth0然后在/etc/network/interfaces.d目录下创建eth0文件,eth0文件内容如下

2022-05-14 12:30:01 1674

原创 nvjmi解码流程

nvjmi解码流程时序图如下图所示。解码主要包括两部分,一是发送待解码的数据块到output plane,二是从capture plane接收解码后的图像数据。在开始解码之前,首先需要对output plane和capture plane分别进行配置。output plane配置先与capture plane配置。1)output plane:将缓存空间加入到buf队列中,用于编码块的数据缓存。2)capture plane:将缓存空间加入到buf队列中,用于解码后的数据缓存。.

2022-05-14 12:13:36 736

原创 TensorRT - 推动AI落地的利器:性能加速与部署应用

1. TensorRT是什么?在介绍TensorRT之前,先介绍一下GPU、CUDA和cuDNN。GPU具有强大的并行计算能力,尤其对于简单的大量的计算,如矩阵计算等,这与其固有的体系结构设计有关。1.1 GPU体系结构GPU采用了一种被称为SIMT的体系结构,也就是相对于CPU中的SIMD的概念。SIMT就是Single Instruction Multiple Threads,也就是一条指令多个线程同时执行,但是与SIMD有所不同的是SIMT同时执行的每个线程是可以有不同分支的。GPU这

2022-05-13 11:43:58 421

原创 nvjmi: Jetson视频解码性能优化

目录1 nvjmi介绍2 nvjmi基于Jetson硬件性能优化2.1硬件解码2.2 Transform2.3 颜色空间转换1 nvjmi介绍nvjmi是一基于Jetson Multimedia API的解码库,功能说明参见基于Jetson Multimedia API的解码库_space01的博客-优快云博客。2 nvjmi基于Jetson硬件性能优化Jetson平台提供了一套Multimedia API用于硬件编解码以及图像缩放、裁剪、旋转等图像...

2022-05-13 09:36:35 987

原创 抓包工具SmartSniff使用

1. 简介SmartSniff 是一款TCP/IP 数据包捕获软件,允许你检查经过你的网络适配器的网络传输。该软件的双层界面显示了捕获的数据包和在ASCII或者十六进制格式下的详细的信息。额外的功能包括本地和远程传输的彩色代码,导出到 HTML 以及更多功能。 SmartSniff 可以用于 Windows 2000/XP Raw Sockets 或者用于其它的 Windows 版本的 WinPcap。这是一款基本的,但是非常小且独立的协议分析软件。下载地址:SmartSniff - Download

2022-05-12 12:15:22 4197

原创 流量监控软件networx使用

1. 简介Networx是一个用于流量监控与统计的工具,可以生成流量统计报表以及查看指定应用程序的流量情况。安装界面是英文的,安装后可以选择中文。下载地址:https://www.softperfect.com/download/https://www.softperfect.com/download/2 设置在任务栏中选择networx图标右键点击“设置”进入设置界面。另外,可以把“点击托盘图标显示”改为“当前传送速度”,“托盘图标悬停显示”也改为“当前传送速度”。这样只要点击托盘图.

2022-05-12 11:59:31 2278

原创 VS启动GoogleTestRunner.vsix失败,错误:未能加载FSharp.Core 4.3.00

解决方案:1)打开F#的包目录为:C:\Program Files\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0将FSharp.Core.dll拷贝到系列2)的目录中。2)GoogleTestRunner安装路径为:C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\14.0\Extensions中的一个子文件夹中。=============

2022-05-12 11:49:25 277

原创 Enigma虚拟文件打包使用说明

1. 简介Enigma Virtual Box是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件的绿色软件。它支持所有类型的文件格式,虚拟化后的软件不释放任何临时文件到您的硬盘,文件模拟过程仅在内存运行。虚拟文件打包系统(Windows环境)。Enigma虚拟文件打包系统可以将您的程序和配套文件打包成一个可执行文件,而没有任何效率的损失,配套文件也不会被释放至硬盘。本项功能有独立的免费应用程序,同时支持X86和X64二进制文件。支持Windows版本广泛,包括Window

2022-05-12 11:36:25 2793 3

原创 CUDA常用功能接口API

将cuda的一些常用操作封装成接口API,供应用程序调用,一般主要用于模型部署应用的预处理。支持的功能:1. 内存管理 - cuAllocMapped 在Jetson系列的集成盒子上,CPU和GPU共用同一个内存地址,加速数据传输。 在PC端的显卡,CPU和GPU的内存地址可能不一致,需要分开使用CPU和GPU的指针。2. 硬件支持的缩放与颜色空间转换操作 - cuResizeRGBLike 实现将ARGB/RGBA转换成BGR,并且同时实现缩放操作。3. 颜色空间转换与数据类型转换操作 -

2022-05-12 11:13:44 1640

原创 基于Jetson Multimedia API的解码库

封装了Jetson Multimedia API的解码库nvjmi,主要功能如下。1)支持H.264解码。2)支持解码后直接硬件完成缩放操作。3)支持解码后直接硬件完成颜色空间转换操作。4)支持Jetpack 4.3、4.4、4.5。使用示例可参考下面的例子:if(jmi_ctx_ == nullptr) {jmi::nvJmiCtxParam jmi_ctx_param{}; if(rsz_w > 0 && rsz_h > 0){

2022-05-12 11:08:46 1330

原创 Boost.TTI 检测是否包含指定的成员函数

通常有的时候,我们在使用C++编码需要判断一个类是否具有某个方法(成员函数),此时就可以使用Boost.TTI模块来实现。普通函数和静态函数都可以用来检测。1)检测普通成员函数首先声明要检测的成员函数名称,如这里检测类算法具有toString这个成员函数。然后,调用boost的方法has_member_function_xx来判定是否具有此方法,其中xx表示要检测的方法的名称,T表示要检测的类。#include <boost/tti/has_member_function.hpp

2022-05-12 10:27:11 408

机械动力学模态分析实验Matlab计算脚本

机械动力学模态分析Matlab计算脚本,包括计算各阶主振型及求频响函数的实频、虚频、幅频、相频及Nyqiust图。

2023-08-04

Iconxp3.1 图标制作软件

Iconxp是一款图标制作工具,除了能制作编辑各种常见的标准图标外,更全面兼容WindowsXP,制作32色带8位alpha channel的WindowsXP图标.

2012-04-06

VC界面编程源码实例

有一些vc界面实例,可以帮助来设计界面。

2010-03-20

空空如也

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

TA关注的人

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