CUDA、HIP、OpenCL和oneAPI编程模型总结及比较

2024-02-06 14:59

本文主要是介绍CUDA、HIP、OpenCL和oneAPI编程模型总结及比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  本文着重对近年来众核处理器以及并行编程模型的发展历程、研究现状和发展趋势进行概述,其中众核处理器主要包括以下四个以及AI加速卡和国产加速卡,并行编程模型重点对CUDA、HIP、OpenCL和DPC++进行介绍。


🚩目录如下:

目录

目录

背景

众核处理器

NVIDIA加速卡

AMD加速卡

Intel加速卡

国产加速卡

AI加速卡

众核处理器的发展趋势

GPU异构计算编程模型

CUDA编程模型

OpenCL编程模型

HIP编程模型

oneAPI编程模型

编程模型对比

总结


   同时,针对这四种编程语言的详细介绍和实例可以参考之前的博文:

CUDAhttps://blog.csdn.net/qq_46009046/article/details/133753993

OpenCLhttps://blog.csdn.net/qq_46009046/article/details/133777178

HIPhttps://blog.csdn.net/qq_46009046/article/details/133583217

DPC++https://blog.csdn.net/qq_46009046/article/details/123306679


背景

  近年来,随着人工智能技术在计算机视觉、天气预测和基因分析等方面的快速发展,其在科研和工程领域的研究和应用对底层硬件的计算能力和架构多样性需求变得日益复杂,从而带动硬件计算资源在过去几十年间得到了迅速发展。

  回顾计算机硬件计算资源的发展历程可以看到,19世纪70年代初,Intel生产的4004微处理器将运算器和控制器集成在一个芯片上,标志着CPU的诞生;在此后的30多年里,CPU的性能得到了快速的发展,从1978年Intel推出微处理器8086,即x86架构,到后来的Pentium和Pentium Pro微架构,通过指令集和编译优化、多级缓存、超标量和超线程等一系列优化技术使得CPU的主频得到快速提高。21世纪开始,一味的追求更高的频率带来日益严重的高耗能、高发热以及平庸的性能,同时由于集成电路的工艺发展到纳米级别,频率的提升也变得愈加困难,采用提高CPU制程和主频的办法遇到了工艺上的壁垒,这些问题使得处理器在性能上无法持续取得突破,摩尔定律逐渐失效。近年来,单核处理器性能提升的幅度已经缩小至每年只增加3%,因此通过多个核心的并行计算逐渐成为的新的解决方法。IBM 在 2001 年发布了双核 RISC 处理器 POWER4,它将两个 64 位 PowerPC 处理器内核集成在同一颗芯片上,成为首款采用多核设计的服务器处理器。此后几年间,4核、8核等更多核心的处理器相继问世,然而,由于CPU自身体系结构的限制,CPU核心的数量不宜太多,因此通过增加核心数来提高性能的方式也遇到了瓶颈。同时随着人工智能技术的快速发展,其对硬件算力的要求越来越高,传统CPU的发展难以和高速发展的人工智能技术相匹配。

  研究者开始探寻全新架构的硬件计算处理器。例如图形处理器GPU,早期的GPU主要应用于图形领域的渲染等。2011年TESLA GPU计算卡发布,标志着NVIDIA将正式用于通用计算的GPU产品线独立出来,这种处理器往往具有几百个甚至上千个核心,因此被称为众核处理器。凭借于众核处理器独特的体系结构和众多的核心数量,其并行计算能力相较于多核处理器得到了迅速提升并且广泛应用于人工智能及超级计算机等领域的复杂计算任务。尽管从 CPU 转向 GPU 架构是朝着正确方向迈出的一大步,但这还无法和现如今高速发展的人工智能技术相匹配, 因此,通过联合设计专门针对 AI 的计算模型和硬件成为了新的解决方法,例如Google于2016年研发的张量处理器TPU,相较于英伟达的通用计算GPU,TPU是Google为人工智能专门定制的专用集成电路(ASIC),其更加的适用于人工智能的计算任务,然而,其通用性因此受到了极大的限制。

  将不同结构的处理器组合在一起便形成了异构计算系统。近年来研究者从应用、功耗以及性能的需求出发,尝试将不同的处理器组合形成新的结构来发挥更高的计算性能、更多样化的计算任务以及更有普遍性的计算系统。然而,硬件的集成和组合并不意味着算力的直接相加。在异构计算结构中,不同处理器的结构、存储和计算均存在独立的标准,处理器和处理器之间的连接、任务调度和划分、数据传输、通信和同步等标准的差异使得异构计算系统的管理和使用更加困难,这不仅需要开发者具备丰富的硬件架构知识,又要熟悉各种软件的优化方法,从而其理论上的性能优势难以得到发挥。

  现如今,随着计算的应用场景变得日益复杂多样,为了跟上人工智能算法对算力的需求,GPU硬件架构快速走向多样化,GPU生产厂家众多,且在商业和市场等因素的影响下,GPU通用计算编程模型也日益多元化。

众核处理器

NVIDIA加速卡

  NVIDIA公司的GPU产品目前占据着人工智能和图形学应用的高端市场,比如专业计算卡Tesla Ampere 100、消费级GeForce 3090和GeForce 4090 GPU。这些最新架构GPU 都包含通用计算的CUDA核、渲染用的RT core和人工智能加速Tensor core。专业计算卡与消费级GPU的区别不大,比如A100的双精度性能为9.7 TFLOPS,而3090的双精度性为556 GFLOPS;3090的单精度性能是35.7TFLOPS,超过了A100的19.5TFLOPS,更低精度的FP16性能达到285TFLOPS,接近A100的312TFLPOS。

  2022年3月NVIDIA GTC大会上NVIDIA介绍了基于全新Hopper架构GPU—H100,它是NVIDIA迄今为止,用于加速人工智能、高性能计算和数据分析等任务的最强GPU芯片。H100拥有800亿个晶体管,采用台积电4nm工艺,提供SXM和PCIe两种规格,双精度和单精度性能分别为30 TFLOPS和24 TFLOPS、60 TFLOPS和48 TFLOPS。性能相比A100,FP8性能提升6倍,FP16、TF32、FP64性能各提升3倍。

  针对人工智能推理市场和边缘计算市场,NVIDIA还推出了5-30w的JETSON系列产品。为了更好地支持人工智能应用,NVIDIA的Ampere 架构GPU还提供了BFLOAT16、INT8和INT4等多种精度的硬件模块,同时,基于全新Hopper架构的H100配备第四代Tensor Core和Transformer 引擎(FP8精度),可使大型语言模型的训练速度提升高达9倍,推理速度提升惊人的30倍,从而奠定了NVIDIA在AI领域的市场领先地位。

AMD加速卡

  尽管AMD的GPU软件生态不如NVIDIA,但是其GPU的计算性能跟NVIDIA相比差距不大。美国近几年研制的三台E级超级计算机: Aurora, Frontier 和El Capitan。其中Frontier和 El Capitan使用AMD Radeon Instinct GPU。2020年10月AMD发布了采用 RDNA2 架构的AMD Radeon RX 6000 系列芯片,专门用于图形学计算领域。

  2021年11月,AMD发布了基于 CDNA2架构的 Instinct MI200系列计算卡,采用6nm FinFET工艺,拥有580亿个晶体管。新系列分为两款型号,Instinct MI250X和Instinct MI250,Instinct MI250X集成了220个计算单元、14080个流处理器核心,最高频率1.7GHz,并有880个第二代矩阵核心,峰值性能为:FP16半精度383 TFLOPS、FP32单精度/FP64单精度47.9 TFLOPS、FP32单精度/FP64双精度矩阵95.7 TFLOPS、INT4/INT8/BF16 383 TFLOPS。2022年6月,美国橡树岭国家实验室(Oak Ridge NationalLaboratory,ORNL)新近投入使用的超级计算机Frontier 就采用了AMD 升级版第三代EPYC 处理器,并搭载AMD Instinct MI 250X GPU,并以1.102 Exaflop/s 的Linpack 最高性能大幅领先于超级计算机Top500 排名第二的基于Arm 处理器的日本富岳(Fugaku),登顶超级计算机Top500 排名榜首。

Intel加速卡

  前几年,Intel主要生产与CPU集成在一起的GPU,根据Jon Peddie Research的调研,2022年第一季度,Intel在集成GPU市场的占比为60%。2020年Intel推出Xe架构,准备用一种架构去满足多种使用场景,从笔记本到游戏卡再到高性能超算。GPU分为四个系列产品,Xe_LP、Xe_HP、Xe_HPG和Xe_HPC,分别面向移动端、AI计算、游戏玩家和高性能计算市场。Xe LP架构的Iris Xe MAX独立GPU已经上市,采用10nm制程,拥有96个EU, 768个流处理器,使用4 GB LPDDR4X,带宽为68.26 GB/s,单精度计算能力约2.5 TFLOPS。同时,Xe_HPG架构的Arc Alchemist于2022年第一季度进入移动市场,随后于2022年第二季度推出台式离散图形卡。Intel Arc Alchemist系列将配备两个主要的DG2 GPU SKU,即大的“SOC 1”和小的“SOC 2”。SOC 1将采用DG2-512 SKU,并将由Arc A700和Arc A500系列图形解决方案使用,而将采用DG2-128 SKU的SOC 2将由Arc A300系列使用。Arc A300系列本身将支持多达8个Xe内核、128个执行单元、1024个ALU、128位(14 Gbps)内存解决方案和台积电的6nm工艺。

  在ISSCC 2022(IEEE国际固态电路会议)期间,Intel详细介绍了Xe_HPC架构GPU—Ponte Vecchio。 Ponte Vecchio GPU 包含了多达47个芯片(包括了16个Xe-HPC 架构的计算芯片、8个Rambo cache芯片、2个Xe 基础芯片、11个EMIB连接芯片、2个 Xe Link I / O芯片和8个HBM芯片),整套芯片包含了惊人的1000亿个晶体管,Ponte Vecchio 的 47 个芯片会使用不同节点的工艺制造,包括了台积电的7nm或5nm工艺,以及英特尔的7nm和10nm 工艺,并通过EMIB与Foveros 3D封装中整合在一起。

国产加速卡

  国产的GPU软硬件近年来也取得了较大的进步, 2018 年 9 月景嘉微JM7200 芯片完成流片和封装,单精度约0.5TFLOPS,目前主要用于图形学应用。2022年壁仞科技发布了自主原创的芯片BR100系列,它采用7nm制程,集成770亿晶体管,采用Chiplet(芯粒)、2.5D CoWoS等先进的设计、制造与封装技术,可搭配64GB HBM2E显存,超300MB片上缓存,支持PCIe 5.0、CXL互联协议等。性能方面,1024 TOPS INT8、512 TFLOPS BF16、256 TFLOPS TF32+、128 TFLOPS FP32,可实现2.3TB/s外部I/O带宽,支持64路编码、512路解码等,号称在FP32(单精度浮点)、INT8(整数,常用于人工智能推理)等维度,均超越了国际厂商最新旗舰。此外中国船舶重工集团公司第七〇九研究所和七一六所也生产面向专用领域的GPU。

  总之,虽然近些年来国产GPU有了一定起色,但是目前国产处理器的硬件架构、制程水平和计算性能同国外发达水平还有较大的差距。

AI加速卡

  专门针对 AI 的计算模型和硬件称之为AI加速卡,比较经典的是Google于2016年研发的张量处理器TPU,到目前为止,第四代TPU已经发布。TPU的架构属于DSA,定位准确,架构简单,单线程控制,定制指令集,架构在深度学习运算方面效率极高,且容易扩展。其最重要的硬件部分是其“Matrix Multiply Unit”。这部分矩阵计算单元用其特殊的脉冲阵列,针对性的提升了AI任务中的卷积、矩阵乘等矩阵运算的速度和功耗。

  MLPerf 最新发布的一套人工智能性能基准指标显示,第四代的TPU集群大幅超越了第三代 TPU的能力,甚至在目标检测、图像分类、自然语言处理、机器翻译和推荐基准等方面,部分能力超越了英伟达发布的 A100。

众核处理器的发展趋势

  近年来,在GPU市场,英伟达得益于强大的生态和技术一家独大,面对庞大的市场规模,以AMD、Intel为代表的厂商也纷纷加入其中,除了GPU系列产品的发布,其不断地完善通用计算、人工智能、图像处理等方面的生态建设,尽管近年来依然很难威胁英伟达的地位,然而随着技术的不断突破、生态的建立英伟达的地位将面临严峻的挑战。另外,众核处理器的发展近年来逐渐走向专用化,无论是谷歌提出的全新TPU还是英伟达在H100系列中的第四代Tensor Core和Transformer 引擎,其都是建立在人工智能领域的专用技术。这种专用性使得在面对需要大规模算力的高性能计算、人工智能、图形处理上能更加的发挥最大优势。同时随着架构、技术、性能上的突破,功耗问题近年来变得越来越重要,尤其是大规模并行计算是功耗量巨大,这势必会成为未来GPU发展的一大核心问题和关注点。

GPU异构计算编程模型

CUDA编程模型

  2007年NVIDIA公司推出GPU的并行计算架构CUDA,2021年发布了11.4版本。CUDA生态之所以发展的好,一方面是版本迭代很快,另外一方面就是软件功能强大,对人工智能的应用支持最完善。

  CUDA编程模型通过扩展C/C++语言实现并行计算功能,编程时主要基于CUDA驱动API、CUDA运行时API和CUDA库函数实现功能。CUDA运行时API封装了底层的驱动API,更加简化了开发过程,提高了开发效率。

  CUDA提供了非常丰富的开发工具,包括NVCC编译器、调试软件CUDA-GDB、性能分析软件Nsight、数学库如cuBLAS、cuFFT、cuSOLVER 、cuSPARSE、cuRand、NVIDIA Performance Primitives等,这些工具和库简化了用户开发的难度,提高了GPU硬件的利用率。

  以CUDA并行编程为例,实现两个向量相加的核函数为:

__global__ void vectorAdd(float *d_A,float  *d_B,float  *d_C,int numElements)
{int i = cudaBlockIdx_x * cudaBlockDim_x + cudaThreadIdx_x;if(i<numElements){d_C[i] = d_A[i] + d_B[i];}
}

OpenCL编程模型

  OpenCL(Open Computing Language) 是第一个面向异构计算设备的开放式、免费标准,由Khronos组织维护,2009年10月公布了1.0规范,最新版本是2020年发布的3.0。OpenCL得到了NVIDIA、AMD、Intel、高通、ARM等知名公司的支持,广泛适用于 CPU、GPU、FPGA、DSP 和人工智能芯片等各种计算设备。

  OpenCL规范类似CUDA通过扩展C/C++语言实现并行计算功能,提供了统一的编程API,由API完成各种功能,API的具体编程实现由各个设备厂家来完成。早期OpenCL语言主要用于CPU和GPU计算设备,目前已经扩大到FPGA和DSP等。OpenCL目前比较诟病的一点就是为了可移植性,在使用时编程比较繁琐。

  以OpenCL并行编程为例,实现两个向量相加的核函数为: 

// OpenCL kernel to perform an element-wise addition 
const char* programSource =
"__kernel                                            \n"
"void vecadd(__global int *A,                        \n"
"            __global int *B,                        \n"
"            __global int *C)                        \n"
"{                                                   \n"
"                                                    \n"
"   // Get the work-item’s unique ID                 \n"
"   int idx = get_global_id(0);                      \n"
"                                                    \n"
"   // Add the corresponding locations of            \n"
"   // 'A' and 'B', and store the result in 'C'.     \n"
"   C[idx] = A[idx] + B[idx];                        \n"
"}                                                   \n"

HIP编程模型

  AMD的GPU早期主要使用OpenCL来开发,后来为了提高开发效率,借鉴了很多CUDA的设计理念,推出了支持HIP(Heterogeneous-Computing Interface for Portability )和OpenCL编程的ROCm框架。

  ROCm在设计风格上类似于CUDA,提供了非常丰富的开发工具,包括HCC编译器,性能分析工具rocProf,数学库如rocBLAS、rocFFT、rocSOLVER 、rocSPARSE、rocRand、深度学习库MIopen等。

  HIP是一个C++运行时API和内核语言,使用HIP编程模型编写的异构程序可以同时在类GPU加速卡平台和NVIDIA GPU上运行。AMD HIP API接口与CUDA API相似。当涉及在NVIDIA GPU编译时HIP充当了CUDA之上的一个精简代理层,且其Runtime API兼容CUDA runtime API。

  ROCm还提供了将CUDA应用程序通过使用HIPIFY工具自动转换为HIP内核语言及运行API的功能,当然,这种转码一般还需要手动进一步调整和优化代码。

  以HIP并行编程为例,实现两个向量相加的核函数为:

__global__ void vectorAdd(float *d_A,float  *d_B,float  *d_C,int numElements){int i = hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x;if(i<numElements){d_C[i] = d_A[i] + d_B[i];}}

oneAPI编程模型

  Intel CPU和GPU近几年来一直支持OpenCL ,由于应用的日趋复杂,再加上Intel的产品线覆盖CPU、GPU、FPGA 和AI芯片等,这使得高性能计算系统的开发过于复杂,为解决此问题,Intel研发了oneAPI框架,其旨在提供一个适用于各类计算架构的统一编程模型和API接口,使编程人员只编写一次代码,就可以让程序在各种硬件平台上。oneAPI包含一种全新的编程语言DPC++,DPC++基于C++编写,由一组C++类、模板与库组成,同时兼容Kronos的SYCL规范。与OpenCL不同,SYCL包含模板和lambda函数,以使更高级别的应用程序软件能够以优化的内核代码加速进行干净的编码。开发人员在比OpenCL更高的级别上编程,从而提高开发效率。

  DPC++是一种单一源代码语言,其中主机代码和异构加速器内核可以混合在同一源文件中。在主机上调用DPC++程序,并将计算加载到加速器。程序员使用熟悉的C++和库结构,并添加了诸如工作目标队列、数据管理缓冲区和并行性并行的函数,以指导计算和数据的哪些部分应该被加载。

  由此可见,oneAPI既提高了开发人员的开发效率,又具有一定的性能可移植性,在未来具有良好的应用前景。

  以DPC++并行编程为例,实现两个向量相加的核函数为:

 //4. 调用oneAPI的核函数在Device上完成指定的运算;h.parallel_for (range<1>(numElements), [=](id<1> index) {//核函数部分,若单独写一个函数,直接使用函数名(参数表)调用即可if (index < numElements)v3_accessor [index] = v1_accessor [index] + v2_accessor [index];});}).wait(); //排队等待

编程模型对比

  除了上面重点介绍的四种GPU编程模型外,还有OpenACC、美国国家实验室研发的RAJA和KOKKOS等异构计算语言。本文重点对CUDA、OpenCL、HIP和oneAPI的几个关键术语进行对比,如表1所示。从表1可以发现,这几个编程模型在关键术语上有互相借鉴的地方。表2对这几种并行编程框架从开放性、开发难度和适应平台等方面进行分析比较。从表2可以看出,除了CUDA,其它编程模型都具有一定的开放性,能支持多种计算平台。

表1 不同编程模型对应的网格划分

CUDA

HIP

OpenCL

oneAPI

Grid

Grid

NDRange

NDRange

Block

Block/Work-group

Work-group

Work-group

Thread

Thread/Work-item

Work-item

Work-item

表2 不同编程框架的比较

编程框架

出现时间

开放性

主要支持语音

支持硬件

编程难度

CUDA

2007

企业私有

C、C++

NVIDIA GPU

容易

HIP

2016

API标准

C、C++

AMD GPU、NVIDIA GPU

容易

OpenCL

2008

API标准

C、C++

CPU、GPU、FPGA、DSP等

困难

OneAPI

2020

API标准

C、C++

CPU、GPU、FPGA、AI等

容易

总结

  本文对近年来多核处理器、众核处理器以及并行编程模型的发展历程、研究现状和发展趋势进行概述。对比了各个编程模型的特点。硬件处理器从最初的单核到多核、众核再到现在为了满足不同应用和研究的异构体系CPU+GPU或CPU+AI加速卡等,处理器体系结构不断的发生着变化,同时从近年来不断出现的并行编程工具、人工智能专用优化技术来说,处理器走向专用化、简单化。从上述异构计算体系面临的问题和挑战来看,目前的异构计算依然存在很大的研究价值,主要有以下几个方面:

  功耗问题。近年来随着可持续发展观念的深入人心,加上人工智能技术海量的数据所需要的庞大算力资源,让异构计算的功耗问题变得逐渐重要,未来低功耗、高算力将会是异构计算的重要发展趋势。

  统一的编程模型。多层面的异构使得将多种不同的处理器结合起来工作往往需要多种程序代码的联合工作,这极大地增加了开发和维护的难度。OneAPI尽管作为一个统一的编程模型但是受限于生态和产品目前无法在人工智能领域的应用中普及。提供一个统一的编程模型将会很大程度上提高并行编程效率。

  负载均衡。由于不同的处理器的计算性能、功耗性能各不相同,因此将一个计算任务进行拆分给不同的硬件处理器进行协同计算,这不仅要求开发人员对任务划分算法设计的高效,更要求对硬件处理器的深度了解,即便如此,加上异构计算本身的复杂性,使得很难进行精确的任务划分。因此,如何有效的自适应分配并行计算任务将会是异构计算的一个重要研究热点。

  内存资源管理。为了最大化硬件效率,往往需要将数据在不同的缓存结构中进行传输和移动,但存储器的复杂内存结构带来的数据共享和数据访问冲突等问题也使得程序的调度和控制变得日益复杂。所以如何有效的管理资源、利用资源实现硬件计算资源和高效利用非常重要。

  通信瓶颈。数据通信和传输可能是限制异构系统可扩展性的潜在瓶颈,在进行大规模异构计算时,通信任务相对于计算任务的耗时可能更高,因此,研究更加高效的通信方式或硬件存算架构将会对异构计算系统的可扩展性提供良好的基础。

这篇关于CUDA、HIP、OpenCL和oneAPI编程模型总结及比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/684680

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}