首页 文章 精选 留言 我的

精选列表

搜索[玩转云开发 Copilot],共10010篇文章
优秀的个人博客,低调大师

[使用初学者]如何快速玩转阿里云大数据计算服务MaxCompute

背景: 针对即将要开通MaxCompute或者已经开通MaxCompute但是还没有梳理清楚其中的概念,也无从下手如何快速入门MaxCompute?近期在这一方面上,咨询的同学也越来越多,总体在学习路径上也有一些资料可以分享给大家,更多的概念、产品定义可以详见官网文档。 关于如何开通: step1:登录管控台 >> step2:开通服务模式(预付费/后付费) 只需要两步就可以搞定!! step1: 点击进入大数据计算服务产品MaxCompute详情页,点击 立即购买。 step2:选择 按量付费并点击 立即购买。 关于如何选择付费模式 关于MaxCompute的计费模式,包括包年包月(也称预付费)和按量付费(俗称后付费)。 通俗的理解,我们拿手机运营商流量套餐来举例,我现在是电信129的套餐,享受每个月12GB的省内流量,可以理解为M

优秀的个人博客,低调大师

使用Python玩转GPU

问题 随着机器学习对模型运算速度的需求越来越强烈,一直想进行GPU编程,但一直以来这些都是c++的专利一想到c++里的各种坑,就提不起劲来,毕竟这样来来回回填坑的投入产出,生产效率就会大打折扣 解决方案 让人欣喜的是,随着Python阵营的不断发展壮大,使用python进行GPU编程也越来越便捷了 那么具体有些什么样的包,能针对GPU做些啥事呢?看看一些具体的代码,就能大概明白:首先是pycuda,这是它的一个例子: mod = SourceModule(""" __global__ void multiply_them(float *dest, float *a, float *b) { const int i = threadIdx.x; dest[i] = a[i] * b[i]; } """) 由上面的代码我们可以看出,pycuda将调用gpu的c++代码做了包装,可以在python里直接使用 再看看numba: @cuda.jit def increment_by_one(an_array): pos = cuda.grid(1) if pos < an_array.size: an_array[pos] += 1 我们可以发现,numba更进一步,直接使用装饰器的办法让调用GPU的过程更简洁方便 再看看cupy: import numpy as np import cupy as cp x_gpu = cp.array([1, 2, 3]) l2_gpu = cp.linalg.norm(x_gpu) cupy的调用方法看起来更加简单清晰,直接将np替换为cp即可 比较 所以,从机器学习全流程的角度我做了下汇总: 原始框架 GPU替代包 支持GPU C/C++核函数 表达式核函数 装饰器 & Python cuda pycuda n卡 √ × × opencl pyopencl n卡 + a卡 √ × × numpy numba n卡 √ √ √ scipy cupy n卡 √ √ √ pandas cudf & modin n卡 无(自动) sklearn cuml & scikit-cuda n卡 无(自动) 目前cupy和numba对numpy的支持都不全面,可两者结合使用 从上面可以看出,基本上已经涵盖了机器学习的全流程,大部分包只支持cuda,主要都是为方便使用n卡加速部分包还是只能使用c/c++语言构建核函数,主要还是受限于cuda驱动的capability所以实际使用门槛并没有降低,只是将核函数包装到python里使用 GPU的主要优势在于大规模的并行计算,所以我又收集了一些并行计算框架,方便日后使用 框架 CPU并行计算 分布式并行计算 GPU并行计算 Multiprocess √ × × joblib √ × × dask √ √ √ ray √ √ √ 至于机器学习/深度学习框架,那就更不用说了:xgboost已经开始支持GPU,RandomForest也有GPU的版本,tensorflow, pytorch默认就是支持GPU的,这里就不再赘述 结论 没有框架时,我们希望有效率的python包能快速解决问题,可框架多了,又会出现选择困难症各种框架都宣称自己效率高,灵活好用,各种benchmark也让人眼花缭乱,目不暇接到底用哪个框架合适,我把自己的一些经验也总结下,希望能让大家少踩一些坑: 1.对于一般的并行计算任务,使用joblib就能方便完成; 2.对于需要集群或GPU的计算任务,可以选择dask或ray; 这里推荐下dask,dask于机器学习/深度学习的计算包结合的更紧密,推出了dask_ml用于处理分布式机器学习; 3.如果想快速迁移numpy/pandas的代码到gpu,可以使用cupy + cudf的组合方式; 4.如果有复杂自定义的计算以及为了追求性能,可以使用pycuda + numba的形式; 5.对于numpy的替换到底选用cupy还是numba? 这里没有严格的界限,两者对GPU的调用方式设计,实际都会有一定的编码成本 从cupy的基本例子中可以看出,对于部分调用来说cupy更简洁,但是牺牲了cpu并行和分布式并行的功能为代价 所以目前可以持续关注这两个框架 6.对于替换pandas到底选用cudf还是modin? modin本身并不是专为cuda并行化而设计,它只是底层支持了dask和ray,由此间接的支持了GPU 且到目前为止对pandas方法的支持还不全面,所以这里推荐选择cudf 思考 总之,python作为机器学习的首选语言,正在不断的开疆拓土,不断的降低并行计算的门槛短短几年前,还只能用xgboost + spark的方式进行分布式训练,转眼现在就有了多种python解决方案短短几年前,还只能用c++ cuda的方式进行GPU编程,转眼现在也有了多种纯python的框架支持短短几年前,将GPU进行集群化、虚拟化管理几乎是不可能的,转眼现在也有了可靠的解决方案…… 但是,到目前为止,还没有一款真正能充分智能化的利用并行能力计算的框架:它能综合cpu+gpu+分布式的计算能力,目标就是为了加速计算,得到结果。期待这样的框架诞生! 相信不久的将来,会有更多更强大的python框架出现,不断的加速自动化的进程让更多的生产力能从原始的轮子中解放出来,加快人工智能的进化!

优秀的个人博客,低调大师

玩转Kubernetes TCP Ingress

问题 在Kuberetes应用中,一般都是通过Ingress来暴露HTTP/HTTPS的服务。但是在实际应用中,还是有不少应用是TCP长连接的,这个是否也是可以通过Ingress来暴露呢?大家知道Kubernetes社区默认带了一个Nginx的Ingress的,而它本身又是支持TCP做反向代理的。所以也就能支持TCP方式的Ingress的。 具体可以参考:https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/ 原理 Ingress Controller在启动时会去watch两个configmap(一个tcp,一个 udp),里面记录了后面需要反向代理的TCP的服务以及暴露的端口。如果里面的key-value发生变换,Ingress c

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册