自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AI编译器及TVM概述

TVM(TVM stack)是一个深度学习和机器学习的通用端到端支持库和编译器堆栈,旨在为深度学习模型的开发、优化和部署提供全面的支持。TVM的整体架构包括以下几个关键组件:前端(Frontend):TVM支持多种深度学习框架的前端,包括TensorFlow、PyTorch、Keras等。通过前端,用户可以将自己的深度学习模型导入到TVM中进行编译和优化。中间表示(Intermediate Representation,IR):TVM使用一种中间表示来表示深度学习模型。

2023-12-13 11:53:22 420

原创 主流机器学习框架及区别

主流的机器学习框架包括:TensorFlow:是由Google开发的开源机器学习框架,最早用于深度神经网络的构建和训练,现已广泛应用于各种机器学习任务。TensorFlow具有高度灵活性和可扩展性,支持在不同平台上运行,并且拥有大量的文档和社区支持。PyTorch:是由Facebook开发的动态图机器学习框架,与TensorFlow相比,PyTorch提供了更直观、更易用的API,并且具有灵活性和高性能,特别适用于研究和原型开发。

2023-12-13 11:28:08 451

原创 开源编译器LLVM-源码编译

build-llvm.sh 依赖 utils.bash 脚本。

2023-11-27 14:24:26 504

原创 嵌入式开发技术栈总结

嵌入式操作系统(Embedded Operation System,EOS)是一种用途广泛的系统软件,主要负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的的功能。嵌入式操作系统在系统实时高效、硬件的相关依赖性、软件固化以及应用的专用型等方面具有较为突出的特点。可裁剪性。支持开发性和可伸缩性的体系结构强实时性。EOS实时性一般较强,可用于各种设备控制中统一的接口。提供设备统一的驱动接口。

2023-11-27 11:56:17 215

原创 vscode代码调试配置

点击 vscode左侧的 run and debug,新建launch.json 和 tasks.json,并进行配置如下。

2023-11-27 11:52:35 378

原创 AMD ROCm软件栈组件介绍

ROCm(Radeon Open Compute)开源软件栈。在NVIDIA GPU上,术语“CUDA”通常是指GPU编程编译器、API和运行时库,但ROCm不那么单一,通常根据其组件进行描述。图1显示了ROCm中涉及的主要组件堆栈。ROCm的顶部面向用户的组件通常是HIPAPI可移植性接口,它与CUDA几乎相同,主要的实际区别只是API函数的名称。HIP程序中的GPU内核使用LLVM编译器的AMD GPU后端进行编译,并使用ROCclr(ROCm公共语言运行时)运行时库运行。

2023-11-27 11:47:03 596

原创 ROCm kernel调度执行过程详解

熟悉NVIDIA GPU的读者,应对于了解kernel-launch请求在到达AMD GPU硬件之前经过一系列的过程应该比较熟悉。图2描述了此请求可能经过的路径。为了帮助简化后面解释的复杂性,首先总结了一个概括性的描述:用户程序调用hipLaunchKernelGGL API函数来启动一个内核。HIP运行时将一个内核启动命令插入由ROCclr运行时库管理的软件队列中。ROCclr将内核启动命令转换为AQL(体系结构队列语言)数据包。ROCclr将AQL数据包插入HSA(异构系统架构)队列中。

2023-11-27 11:44:12 268

原创 C++并发:原子操作、内存模型、内存屏障

首先内存模型到底描述的是一个怎样的问题,对此问题网上可谓是群魔乱舞,说什么的都有,我们来看看维基百科对此问题的定义[16]:内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出个内存操作(读或写),那么总共有:种可能的执行顺序。

2023-11-27 11:36:18 127

原创 C++中的new、operator new与placement new

new operator是我们常用的new。new 和 delete 是用来在 堆上申请和释放空间的 ,是 C++ 定义的 关键字,和 sizeof 一样。实际 new / delete 和 malloc / free 最大的区别是,前者对于 自定义类型 除了可以开辟空间,还会调用构造和析构函数分配内存,如果类A重载了operator new,那么将调用A::operator new(size_t )来完成,如果没有重载,就调用::operator new(size_t ),即全局new操作符来完成。

2023-11-27 11:32:17 278

原创 linux 查看进程并kill

ps -ef | grep 'richard' | grep 'vscode'| grep -v grep | awk '{print $2}' | xargs kill -9

2023-08-29 10:14:55 49

原创 深度学习AI编译器-LLVM简介

LLVM是一个编译器框架。LLVM作为编译器框架,是需要各种功能模块支撑起来的,你可以将clang和lld都看做是LLVM的组成部分,框架的意思是,你可以基于LLVM提供的功能开发自己的模块,并集成在LLVM系统上,增加它的功能,或者就单纯自己开发软件工具,而利用LLVM来支撑底层实现。LLVM由一些库和工具组成,正因为它的这种设计思想,使它可以很容易和IDE集成(因为IDE软件可以直接调用库来实现一些如静态检查这些功能),也很容易构建生成各种功能的工具(因为新的工具只需要调用需要的库就行)。

2023-05-29 21:48:38 3078

原创 深度学习AI编译器-MLIR简介

MLIR:Multi-Level Intermediate Representation 多级中间表达中间表达 IR(Intermediate Representation)编译器在编译阶段中形成的中间代码,复杂度通常介于高级语言与低级机器码之间Dialect 为实现多层IR的核心其次还包括如下概念OpertationValueTypeAttribute定义特定OP的属性

2023-05-29 14:15:33 1728

原创 深度学习AI编译器-TVM简介

深度学习编译器主要为解决不同框架下训练的模型部署到指定的某些设备上时所遇到的一系列复杂的问题,即将各种深度学习训练框架的模型部署到各种硬件所面临的问题;

2023-05-27 14:46:23 2050

原创 C/C++开发重点知识总结-1

C/C++重点知识总结-11、C/C++ 基础1.1 c++面试总结:https://blog.csdn.net/wsq_zqfl/article/details/104429090?spm=1001.2014.3001.5502https://blog.csdn.net/xu_fu_yong/article/details/1229483792、重点知识总结2.1 智能指针2.1.1 内存泄漏2.1.2 智能指针2.2 C++设计模式2.3 C++多线程2.4 STL类容器3、

2023-05-26 19:00:30 50

原创 人工智能技术及项目产品开发流程

人工智能作为当下最热门的行业之一,不管是高考的专业选择中,还是各行各业的工作中,基本都会听到人工智能这个词,主要原因就是社会上各行各业对人工智能的需求越来越大了。在国内,从2015年开始,人工智能技术就已经逐渐渗透到了各行各业了。那么实现人工智能的过程是怎么样的呢?我们所看到的人工智能产品到底是怎么一步步走到我们眼前的呢?接下来我们就以人工智能领域最为火热的深度学习为例,详细分析一下人工智能项目的研发流程。1、数据处理-AI的粮食加工人工智能项目研发的首要阶段就是数据处理,..

2021-09-02 16:56:52 1306

原创 计算机体系结构和操作系统基础

目录1 冯诺伊曼体系1.1 冯诺伊曼体系简介1.2 CPU 简介1.3 CPU 访问方式1.4 CPU 访问速度1.5 操作系统2 内存管理2.1 MMU2.2 内存管理方式3 进程管理3.1 进程基础知识3.2 PCB3.3 进程控制3.4 进程调度3.5 线程3.6 进程通信3.7 多线程编程4 文件管理4.1 VFS 虚拟文件系统4.2 文件组成4.3 文件存储5 输入输出管理5.1 设备控制器跟...

2021-03-06 14:27:41 1242

原创 常用IO模型【阻塞、非阻塞、多路复用、异步IO】详解

关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。1 阻塞跟非阻塞1.1 阻塞阻塞IO阻塞IO情况下,当用户调用read后,用户线程会被阻塞,等内核数据准备好并且数据从内核缓冲区拷贝到用户态缓存区后read才会返回。可以看到是阻塞的两个部分。 CPU把数据从磁盘读到内核缓冲区。 CPU把数据从内核缓冲区拷贝到用户缓冲区。 1.2 非阻塞非阻塞IO非阻.

2021-03-06 14:13:10 593

原创 详解常用I/O模型及I/O多路复用

详解常用I/O模型及I/O多路复用概述当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命令行。我们先等待哪个事件呢?没有哪个选择是理想的。如果在acceptor中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数

2021-03-06 14:12:32 251

转载 一篇文章搞懂人脸识别的十个概念

本篇整理了一些常见人脸技术的基本概念,主要用于帮助非基础研究人员对人脸相关技术有一个简单初步的了解。人脸技术基本概念介绍1.人脸检测“人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。常见的人脸检测算法基本是一个“扫描”加“判别”的过程...

2021-02-08 17:58:15 508

转载 人脸识别十大关键技术

人脸识别十大关键技术转载:https://zhuanlan.zhihu.com/p/613484531、人脸检测(FaceDetection)“人脸检测(FaceDetection)”的作用就是要检测出图像中人脸所在位置。人脸检测算法的原理简单来说是一个“扫描”加“判定”的过程。即首先在整个图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸大小以及图像内容相关。在实际算法时,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、“人脸数量上限”的方式来加

2021-02-08 17:55:55 8342

原创 知识蒸馏:如何用一个神经网络训练另一个神经网络

知识蒸馏:如何用一个神经网络训练另一个神经网络导读知识蒸馏的简单介绍,让大家了解知识蒸馏背后的直觉。如果你曾经用神经网络来解决一个复杂的问题,你就会知道它们的尺寸可能非常巨大,包含数百万个参数。例如著名的BERT模型约有1亿1千万参数。为了说明这一点,参见下图中的NLP中最常见架构的参数数量。各种模型结构的参数数量在Kaggle竞赛中,胜出的模型通常是由几个模型组成的集合。尽管它们在精确度上可以大大超过简单模型,但其巨大的计算成本使它们在实际应用中完全无法使用。有没有什么方

2020-10-31 11:26:13 284

原创 TCP/IP详解--拥塞控制 & 慢启动 快恢复 拥塞避免

TCP的拥塞控制1. 拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。...

2020-03-07 21:34:10 414

转载 linux Shell的后台运行(&)与nohup

简述在shell脚本中当我们需要把一个任务放在后台运行时,通常我们会使用&符号:subcommand &此时主进程会继续往下执行,而子进程会在后台启动运行。于此同时,我们常会看到nohup会和后台任务一起使用,格式是:nohup subcommand &nohup在这里起了什么角色呢。nohupnohup起两个作用:正...

2020-02-28 16:08:06 677

原创 linux下详解shell中>/dev/null 2>&1

前言相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>&1 >/dev/null,出了一点小问题之后,我才开始去了解这段命令背后的“玄机”。shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到...

2020-02-28 16:03:20 166

原创 [C++]虚析构函数的作用

C++中的虚析构函数到底什么时候有用的,什么作用呢。一.虚析构函数的作用总的来说虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的。也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的。我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小...

2020-02-22 11:20:47 1356

原创 C++中的inline用法

C++中的inline用法1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存...

2020-02-21 16:05:37 226 1

原创 C/C++面试题总结

C/C++面试题总结(1)首先说一下,这些东西,有的是必须掌握的,有的是面试时你讲出来就是闪光点。自己把握。把握不好的都搞懂。实在不行背下来。由于时间关系,总结的比较随意,有的就直接贴链接了,希望理解一下。第一篇:基础(必须熟稔于心)1.const关键字(反义词mutable)(1)定义时必须初始化(2)指针可以是const指针,也可以是指向const对象的指针(3)...

2020-02-21 15:48:46 563

转载 TensorFlow运作方式入门

转载:http://www.tensorfly.cn/tfdoc/tutorials/mnist_tf.html代码:tensorflow/g3doc/tutorials/mnist/本篇教程的目的,是向大家展示如何利用TensorFlow使用(经典)MNIST数据集训练并评估一个用于识别手写数字的简易前馈神经网络(feed-forward neural network)。我们的目标读者,...

2020-02-20 17:15:00 291

转载 令人拍案叫绝的EfficientNet和EfficientDet

转载:https://zhuanlan.zhihu.com/p/96773680本文介绍谷歌发表于 ICML 2019的 EfficientNet 和 最近挂在arXiv上的 EfficientDet, 第一作者为同一个人,来自谷歌大脑团队,纸面上体现出来的效果是非常好的。先介绍第一篇文章—— EfficientNet论文:EfficientNet: Rethinking Model...

2020-02-17 10:41:00 1650

原创 商汤科技VS旷视科技VS依图科技

一、行业市场1、计算机视觉发展(数据+运算力+算法)1)数据量:海量数据为计算机视觉飞速发展提供了燃料。数据的爆发得益于互联网、社交媒体、移动设备、智能设备和各种感知传感器,这位通过深度学习的方法来训练计算机视觉技术提供很好的土壤。2)运算力(1) 在计算机视觉领域,图像、视频为数据密集型数据,因此需要大量的矩阵运算,所以并行式运算芯片成为该领域的宠儿。(2) 世...

2020-02-15 16:55:03 1843

原创 大数据学习笔记之flink----流式数据处理引擎

一、flink简介二、flink详解

2020-02-15 16:06:28 966

转载 人脸识别长篇研究

转载地址:https://zhuanlan.zhihu.com/p/105810423一、发展史1、人脸识别的理解:人脸识别(Face Recognition)是一种依据人的面部特征(如统计或几何特征等),自动进行身份识别的一种生物识别技术,又称为面像识别、人像识别、相貌识别、面孔识别、面部识别等。通常我们所说的人脸识别是基于光学人脸图像的身份识别与验证的简称。人脸识别利用摄像机或...

2020-02-15 15:49:25 5679 1

原创 计算机CPU工作(多核/缓存)原理

现代CPU一般使用缓存(Cache)来解决CPU读写主存慢的问题;使用多核来并行计算以加速程序运行。并行计算一般需要多线程技术,如何操作多线程对编程人员提出了挑战。计算机软硬件体系结构之前的文章PP鲁:计算机基础系列:源代码如何被计算机执行​zhuanlan.zhihu.com已经提到,对于一段源代码,计算机主要依靠编译器将源代码转化为CPU可以执行的程序。那么,CPU到底是如...

2020-02-14 20:13:47 4498

原创 GPU/TPU/FPGA三大AI芯片

AI芯片是当前科技产业和社会关注的热点,也是AI技术发展过程中不可逾越的关键环节,不管有什么好的AI算法,想要最终落地,就必然通过AI芯片实现。而AI芯片备受关注,也有许多争议,“GPU好还是TPU好”,种种断言性的结论甚嚣尘上。今天就给大家剖析三大AI芯片。GPUGPU(Graphics Processing Unit)就是显卡中的处理核心,早期就是用来渲染图形的,又称显示核心、视觉...

2020-02-14 20:11:00 817

原创 2020人工智能Ai芯片前言解读

芯片的概念:(半导体元件产品的统称)集成电路,缩写作 IC;或称微电路、微芯片、晶片/芯片,在电子学中是一种把电路(主要包括半导体设备,也包括被动组件等)小型化的方式,并时常制造在半导体晶圆表面上。专业地讲就是:将电路制造在半导体芯片表面上的集成电路又称薄膜(thin-film)集成电路。另有一种厚膜(thick-film)集成电路(hybrid integrated circuit)是由独立...

2020-02-14 20:01:18 2544

转载 cmake find_package 原理简介以及使用说明

原文:https://blog.csdn.net/chengde6896383/article/details/86497016下面简单介绍Cmake 如何使用find_package命令对外部库进行查找:cmake本身不提供任何关于搜索库的便捷方法,也不会对库本身的环境变量进行设置。它仅仅是按照优先级顺序在指定的搜索路径进行查找Findxxx.cmake文件和xxxConfig.cmak...

2019-07-30 14:22:18 735

原创 大数据学习笔记之strom----实时流处理引擎

概述Apache Strom是开源分布式实时计算系统,为Apache的顶级项目,同Hadoop一样Strom也可以处理大批量数据,然而Strom在保证高可靠的前提下还可以让处理进行得更加实时,也就是说,所有得信息都会被处理。Strom同样还具备容错和分布式计算这些特性,这就让Strom可以扩展到不同得机器上进行大批量得数据处理。Strom可水平扩展,支持容错,保证所有数据被处理,易于安装维...

2019-07-23 09:48:48 411

原创 C++ vector,STL vector(可变长的动态数组)详解

vector 是顺序容器的一种。vector 是可变长的动态数组,支持随机访问迭代器,所有STL算法都能对 vector 进行操作。要使用 vector,需要包含头文件 vector。在 vector 容器中,根据下标随机访问某个元素的时间是常数,在尾部添加一个元素的时间大多数情况下也是常数,总体来说速度很快。在中间插入或删除元素时,因为要移动多个元素,因此速度较慢,平均花费的时间和容器中...

2019-06-25 15:00:16 918

原创 人脸检测--SSH: Single Stage Headless Face Detector

论文题目《SSH:Single Stage Headless Face Detector》作者 Mahyar Narjibi 与 Pouya Samangouei 2017代码地址:https://github.com/mahyarnajibi/SSH论文背景SSH为single stage headless的缩写,为单阶段检测器。所谓的headless指的就是只保留基础网络,将原始分...

2019-06-19 14:55:09 1597

转载 嵌入式系统之bootloader简介

转载:https://blog.csdn.net/Set_Mode/article/details/91049861目录Bootloader 介绍什么是BootloaderBootloader的特点Bootloader的操作模式常用bootloader介绍​U-boot介绍U-boot的特点:U-boot命令介绍printenv 显示所有环境变量set...

2019-06-13 10:15:03 1903

PMP思维导图.docx

项目管理PMP考试大纲中10到13章的思维导图,总结了最后4章的所有知识点,方便学习复习备考及项目管理时使用

2020-02-15

详细介绍嵌入式软件开发的前景和相关知识

介绍嵌入式发展前景以及各种不同方向的嵌入式发展方向和所需掌握的知识

2013-10-20

Linux uboot的配置移植

关于linux系统bootloader在mini2440开发版上配置和移植过程的详细介绍

2013-10-20

嵌入式Linux内核的裁剪移植

Linux 系统裁剪移植手册,详细介绍了Linux内核的裁剪过程,以及移植到了arm9的mini2440开发板上

2013-10-20

windows安全设置

关于windows系统安全设置的实验截图和说明 关于windows系统安全设置的实验截图和说明 关于windows系统安全设置的实验截图和说明

2012-11-18

网络安全规划方案.doc

计算机网络安全,

2012-11-18

空空如也

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

TA关注的人

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