便捷、快速、稳定、高性能!以 GPU 实例演示 Alibaba Cloud Linux 3 对 AI 生态的支持 | 龙蜥技术
编者按:日前,Alibaba Cloud Linux 3 为使 AI 开发体验更高效,提供了一些优化升级,本文为“Alibaba Cloud Linux 3 AI 能力介绍”系列文章预告篇,以 GPU 实例为例,为大家演示 Alibaba Cloud Linux 3 对 AI 生态的支持。接下来还将陆续发布 2 篇系列文章,主要介绍基于 Alinux 的云市场镜像为用户提供开箱即用的 AI 基础软件环境,以及基于 AMD 介绍 AI 能力差异化。敬请期待。更多 Alibaba Cloud Linux 3 信息可前往官网查看:https://www.aliyun.com/product/ecs/alinux
当在 Linux 操作系统上开发人工智能(AI)应用程序时,研发人员可能会遇到一些挑战,这些挑战包括但不限于:
1. GPU 驱动程序:为了在 Linux 系统上使用 NVIDIA GPU 进行训练或推理,需要安装和配置正确的 NVIDIA GPU 驱动程序。由于不同的操作系统和 GPU 型号可能需要不同的驱动程序,因此可能需要一些额外的工作。
2. AI 框架编译:在 Linux 系统上使用 AI 框架进行编程时,需要安装和配置适当的编译器和其他依赖项。这些框架通常需要进行编译,因此需要确保正确安装了编译器和其他依赖项,并正确配置编译器。
3. 软件兼容性:Linux 操作系统支持许多不同的软件和工具,但不同版本和发行版之间可能存在兼容性问题。这可能会导致某些程序无法正常运行或者在某些操作系统上不可用。因此,研发人员需要了解其工作环境的软件兼容性,并进行必要的配置和修改。
4. 性能问题:AI 软件栈是一个异常复杂的系统,通常需要对不同型号的 CPU 和 GPU 进行专业的优化,才能发挥其最佳性能。软硬件协同的性能优化对于 AI 软件栈来说是一个具有挑战性的任务,需要拥有高超的技术水平和专业知识。
阿里云第三代云服务器操作系统 Alibaba Cloud Linux 3(以下简称“Alinux 3”)是基于龙蜥操作系统 Anolis OS 研发的商业版操作系统,为开发人员提供了强大的 AI 开发平台,通过支持龙蜥生态 repo(epao),Alinux 3 实现了对主流的 nvidia GPU 和 CUDA 生态的全面支持,使得 AI 开发更加便捷高效。此外,Alinux 3 还支持主流的 AI 框架 TensorFlow/PyTorch,intel/amd 等不同 CPU 平台对 AI 的优化,还将引入了 modelscope、huggingface 等大模型 SDK 的原生支持,为开发人员提供了丰富的资源和工具。这些支持,使得 Alinux 3 成为了一个完善的 AI 开发平台,解决 AI 开发人员的痛点问题,不用一直折腾环境,让 AI 开发体验更容易更高效。
Alinux 3 为开发人员提供了强大的 AI 开发平台。为了解决以上研发人员可能遇到的挑战,Alinux 3 提供了以下几点优化升级:
1. Alinux 3 通过引入龙蜥生态软件仓库(epao),支持开发者一键安装主流 NVIDIA GPU 驱动以及 CUDA 加速库,节省了开发者需要匹配驱动版本以及手动安装的时间。
2. epao 仓库中还提供了对主流 AI 框架 Tensorflow/PyTorch 的版本支持,同时安装过程中会自动解决 AI 框架的依赖问题,开发者无需进行额外编译,即可搭配系统 Python 环境进行快速开发。
3. Alinux 3 的 AI 能力在提供给开发者之前,所有组件均经过兼容性测试,开发者可以一键安装对应的 AI 能力,免去了环境配置中可能出现的对系统依赖项的修改,提高了使用过程中的稳定性。
4. Alinux 3 针对 Intel/AMD 等不同平台的 CPU 进行了 AI 专门优化,更好地释放硬件的全部性能。
5. 为了更快的适应 AIGC 产业的快速迭代,Alinux 3 还将引入对 ModelScope、HuggingFace 等大模型 SDK 的原生支持,为开发人员提供了丰富的资源和工具。
在多维度的优化加持下,使得 Alinux 3 成为一个完善的 AI 开发平台,解决了 AI 开发人员的痛点问题,让 AI 开发体验更容易更高效。
以下以阿里云 GPU 实例为例子,演示 Alinux 3 对 AI 生态的支持:
1、购买 GPU 实例
2、选择 Alinux 3 镜像
3、安装 epao repo 配置
dnf install -y anolis-epao-release
4、安装nvidia GPU driver
安装 nvidia driver 之前先保证 kernel-devel 已安装,确保 nvidia driver 安装成功。
dnf install -y kernel-devel-$(uname-r)
安装 nvidia driver:
dnf install -y nvidia-driver nvidia-driver-cuda
安装完成后可以通过 nvidia-smi 命令查看 GPU 设备状态。
5、安装 cuda 生态库
dnf install -y cuda
6、 安装 AI 框架 tensorflow/pytorch
当前提供 CPU 版的 tensorflow/pytorch,未来将支持 GPU 版的 AI 框架。
dnf install tensorflow -y
dnf install pytorch -y
安装完成后可通过简单的命令查看是否安装成功:
7、部署模型
使用 Alinux 3 对 AI 的生态支持,可以部署 GPT-2 Large 模型来进行本文续写任务。
安装 Git 以及 Git LFS 方便后续下载模型。
dnf install -y git git-lfs wget
更新 pip,便于后续部署 Python 环境。
python -m pip install --upgrade pip
启用 Git LFS 的支持。
git lfs install
下载 write-with-transformer 项目源码,以及预训练模型。write-with-transformer 项目是一个网页写作 APP,可以使用 GPT-2 大模型对写作内容进行续写。
git clone https://huggingface.co/spaces/merve/write-with-transformer
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/gpt2-large
wget https://huggingface.co/gpt2-large/resolve/main/pytorch_model.bin -O gpt2-large/pytorch_model.bin
安装 write-with-transformer 所需要的依赖环境。
cd ~/write-with-transformer
pip install --ignore-installed pyyaml==5.1
pip install -r requirements.txt
环境部署完毕后,就可以运行网页版 APP,来体验 GPT-2 帮助完成写作的乐趣。目前 GPT-2 只支持使用英文进行文本生成。
cd ~/write-with-transformer
sed -i 's?"gpt2-large"?"../gpt2-large"?g' app.py
sed -i '34s/10/32/;34s/30/120/' app.py
streamlit run app.py --server.port 7860
回显信息出现 External URL: http://<ECS EXTERNAL IP>:7860 表明网页版 APP 运行成功。
“更多龙蜥产品、生态、技术合作可发送邮件至邮箱 secretary@openanolis.org,我们会第一时间与您联系。”
—— 完 ——
相关文章:

便捷、快速、稳定、高性能!以 GPU 实例演示 Alibaba Cloud Linux 3 对 AI 生态的支持 | 龙蜥技术
编者按:日前,Alibaba Cloud Linux 3 为使 AI 开发体验更高效,提供了一些优化升级,本文为“Alibaba Cloud Linux 3 AI 能力介绍”系列文章预告篇,以 GPU 实例为例,为大家演示 Alibaba Cloud Linux 3 对 AI 生…...

创新科技改变城市:智慧城市建设全景展望
在当今科技飞速发展的时代,智慧城市的概念已经成为城市发展的新趋势,为人们的生活带来了前所未有的便利和改变。智慧城市,顾名思义,是以先进的信息技术为基础,通过数字化、互联网化和智能化手段,实现城市基…...

Kotlin 环境下解决属性初始化问题
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

Java复习-20-接口(3)- 代理设计模式
代理设计模式(Proxy) 功能:可以帮助用户将所有的开发注意力只集中在核心业务功能的处理上。 代理模式(Proxy Pattern)是一种结构性模式。代理模式为一个对象提供了一个替身,以控制对这个对象的访问。即通过代理对象访问目标目标对象,可以在目…...

如何远程访问Linux MeterSphere一站式开源持续测试平台
文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…...

LinuxUbuntu安装OpenWAF
Linux&Ubuntu安装OpenWAF 官方GitHub地址 介绍 OpenWAF(Web Application Firewall)是一个开源的Web应用防火墙,用于保护Web应用程序免受各种网络攻击。它通过与Web服务器集成,监控和过滤对Web应用程序的流量,识…...

LeetCode 剑指offer 09.用两个栈实现队列
LeetCode 剑指offer 09.用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回…...

第三方软件检测机构有哪些资质,2023年软件测评公司推荐
软件第三方测试报告 伴随着软件行业的蓬勃发展,软件测试也迎来了热潮,但是国内的软件测试行业存在着测试入行门槛低、测试投入少、测试人员专业性不足等问题,这些问题不但会阻碍软件测试行业的良性发展,而且难以保证软件产品的质…...

Unity的GPUSkinning进一步介绍
大家好,我是阿赵。 在几年前,我曾经写过一篇介绍GPUSkinning的文章,这么多年之后,还是看到不停有朋友在翻看这篇旧文章。今天上去GitHub看了一下,GPUSkinning这个开源的插件已经很久没有更新过了,还是停…...

Mysql redolog
一、redolog 是啥 数据库的ACID:A原子性,C一致性,I隔离性,D持久性; redolog:保证 持久性; redolog: 系统奔溃重启时需要按照上述内容所记录的步骤重新更新数据页,特点:…...

【设计模式】Head First 设计模式——桥模式 C++实现
设计模式最大的作用就是在变化和稳定中间寻找隔离点,然后分离它们,从而管理变化。将变化像小兔子一样关到笼子里,让它在笼子里随便跳,而不至于跳出来把你整个房间给污染掉。 设计思想 桥模式。将抽象部分(业务功能)与实现部分(平…...

CESM2代码下载
这半年忙着毕业写论文,好久好久好久不更新了∠( ω)/ ,今天准备开个新坑 ๑乛◡乛๑,学习一下CESM(Community Earth System Model),它是一个完全耦合的全球气候模型,可用于地球过去、…...

编写OpenCL程序的基本步骤
opencl pyopencl OpenCL-Headers OpenCL(全称为Open Computing Langugae,开放运算语言)是第一个面向异构系统(此系统中可由CPU,GPU或其它类型的处理器架构组成)的并行编程的开放式标准。 它是跨平台的。 OpenCL由两部分组成,一是用于编写…...

计算机网络之TCP/IP协议第一篇:网络基础知识
文章目录 写给自己的话 一:前言 1:手握金刚钻的TCP/IP 2:计算机中的协议 3:分组...

虚拟机扩容
系统环境centos8,分两步,第一步先在vmware扩容,第二部在虚拟机内部扩容 1.vmware分配磁盘空间 2.虚拟机内部扩容 查看当前磁盘信息,这个是扩容之前的,扩容完成才会显示新的 df -h查看系统分区信息 fdisk -l查看目录…...

Linux下的系统编程——进程间的通信(九)
一、进程间通信常用方式 IPC方式: Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核&am…...

Qt QtableWidget、QtableView表格删除选中行、删除单行、删除多行
文章目录 Qt QtableWidget表格删除选中行只能选择一行,点击按钮后,删除一行可以选择中多行,点击按钮后,删除多行选中某一列中的不同行,点击按钮后,删除多行 QTableWidgetSelectionRange介绍QTableWidget的选…...

【代码随想录day24】不同的二叉搜索树
题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出…...

数学建模--Subplot绘图的Python实现
目录 1.Subplot函数简介 2.Subplot绘图范例1:绘制规则子图 3.Subplot绘图范例2:绘制不规则子图 4.Subplot绘图范例3:gridspec辅助实战1 5.Subplot绘图范例4:gridspec辅助实战2 1.Subplot函数简介 """ 最近在数学建模种需要绘制多张子图,发现对于subplot函…...

JMeter(三十九):selenium怪异的UI自动化测试组合
文章目录 一、背景二、JMeter+selenium使用过程三、总结一、背景 题主多年前在某社区看到有人使用jmeter+selenium做UI自动化测试的时候,感觉很是诧异、怪异,为啥?众所周知在python/java+selenium+testng/pytest这样的组合框架下,为啥要选择jmeter这个东西[本身定位是接口测…...

c++ 移动构造方法为什么要加noexcept
背景: 最近看了候捷老师的c的教程, 他说移动构造方法要加noexcept, 在vector扩容的时候, 如果有移动构造方法没有加noexcept,是不会调用的. 个人感觉有些神奇, 这就去查下一探究竟. 过程: 测试代码如下: #include <iostream> #include <vector> struct A {A(){s…...

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…...

手把手教你搭建园林园艺小程序商城
现如今,随着互联网的快速发展,小程序成为了企业和个人展示产品和服务的新方式。在园林园艺行业,构建一个园林园艺小程序能够更好地推广和销售自己的产品和服务。那么,如何构建一个园林园艺小程序呢?下面我们来详细介绍…...

Java Iterator(迭代器)
Java迭代器(Iterator)是 Java 集合框架中的一种机制,是一种用于遍历集合(如列表、集合和映射等)的接口。 它提供了一种统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。 Iterator 是 …...

Logstash同步MySQL数据到ElasticSearch
当MySQL数据到一定的数量级,而且索引不能实现时,查询就会变得非常缓慢,所以使用ElasticSearch来查询数据。本篇博客介绍使用Logstash同步MySQL数据到ElasticSearch,再进行查询。 测试环境 Windows系统MySQL 5.7Logstash 7.0.1El…...

【C++】运算符重载的示例实现和应用
C运算符重载的格式: operator 运算符 比如要重载 ! 运算符 : operator ! 下面是一个例子: class DemoText{DemoText(string str, int num){m_text str; m_number num;}string m_text;int m_number; }这里来定义两个对象:…...

Kubernetes禁止调度
在Kubernetes中,您可以通过几种方式来禁止某个Pod调度到节点上。以下是一些方法: Node Selector:您可以使用Node Selector来限制Pod只能调度到带有特定标签的节点上。如果您希望完全禁止Pod调度到某些节点上,可以确保这些节点不拥…...

CocosCreator3.8研究笔记(七)CocosCreator 节点和组件的介绍
相信很多新手朋友,肯定会问,CocosCreator 中什么是节点?什么是组件? 一、什么是组件(Component)? Cocos Creator 3.8 的工作流程是以组件式开发为核心,即以组合而非继承的方式进行游…...

Ceph入门到精通-C++入门知识点
C中的双冒号(::)是作用域分解运算符(scope resolution operator)。 它主要有以下两种用法: 用于区分同名的不同成员,例如在不同类中声明了同名的成员函数或成员变量,可以使用A::B的方式来特指A类的B成员。当全局变量…...

Ansible之playbook详解和应用实例
目录 一、playbook简介 1.什么是playbook 2.playbook组成 二、应用实例 1.使用playbook安装启用httpd服务 2.使用playbook安装启用nginx服务 三、ansible-playbook其他用法 1.检查yaml文件的语法是否正确 2.检查tasks任务 3.检查指定的主机 4.指定从某个task开始运行…...