在GPU实例上使用RAPIDS加速机器学习任务

发布日期:2025-01-04 12:03    点击次数:106
本文介绍了如何在GPU实例上基于NGC环境使用RAPIDS加速库,加速数据科学和机器学习任务,提高计算资源的使用效率。操作步骤步骤一:获取NGC API Key在NGC注册页面注册NGC账号。登录NGC网站。单击页面右上角用户名,然后单击Setup。在Setup页面的Generate API Key区域,单击Get API Key。在API Key页面,单击Generate API Key。在Generate a New API Key对话框中,单击Confirm。复制API Key并保存到本地。步骤二:获取RAPIDS镜像下载命令完成以下操作,获取RAPIDS镜像下载命令:登录NGC网站。在页面左侧导航栏,选择CATALOG > Explore Catalog。在NVIDIA NGC: AI Development Catalog页面的搜索栏中,输入RAPIDS。在搜索结果中,单击RAPIDS镜像。获取docker pull命令。单击Tags页签。找到并复制Tag信息。本示例中,选择0.8-cuda10.0-runtime-ubuntu16.04-gcc5-py3.6。返回页面顶部,复制Pull Command中的命令到文本编辑器,将镜像版本替换为对应的Tag信息,并保存。步骤三:部署RAPIDS环境完成以下操作,部署RAPIDS环境:创建一台GPU实例。详细步骤请参见自定义购买实例。连接GPU实例。连接方式请参见连接方式介绍。输入NGC APIKey后按回车键,登录NGC容器环境。可选:运行nvidia-smi查看GPU型号、GPU驱动版本等GPU信息。运行docker pull命令下载RAPIDS镜像。可选:查看下载的镜像。运行容器部署RAPIDS环境。步骤四:运行RAPIDS Demo完成以下操作,运行RAPIDS Demo:在GPU实例上下载数据集和Demo文件。在GPU实例上启动JupyterLab服务。# Run the following command to start JupyterLab and set the password. cd /rapids/rapids_notebooks_v0.8/xgboost jupyter-lab --allow-root --ip=0.0.0.0 --no-browser --NotebookApp.token='YOUR LOGON PASSWORD' # Exit JupyterLab. sh ../utils/stop-jupyter.sh除使用命令外,您也可以执行脚本sh ../utils/start-jupyter.sh启动jupyter-lab,此时无法设置登录密码。您也可以连续按两次Ctrl+C退出JupyterLab服务。打开浏览器(推荐使用Chrome浏览器),在地址栏输入http://您的GPU实例IP地址:8888远程访问JupyterLab。运行NoteBook代码。代码执行过程NoteBook代码的执行过程如下:准备数据集。设定相关参数。启动Dask服务。启动ETL。启动Data Conversion。启动ML Training。Dask DashboardDask Dashboard支持任务进度跟踪、任务性能问题识别和故障调试。相关函数函数功能函数名称下载文件def download_file_from_url(url, filename):解压文件def decompress_file(filename, path):获取当前机器的GPU个数def get_gpu_nums():管理GPU内存def initialize_rmm_pool():def initialize_rmm_no_pool():def run_dask_task(func, **kwargs):提交DASK任务def process_quarter_gpu(year=2000, quarter=1, perf_file=""):def run_gpu_workflow(quarter=1, year=2000, perf_file="", **kwargs):使用cuDF从CSV中加载数据def gpu_load_performance_csv(performance_path, **kwargs):def gpu_load_acquisition_csv(acquisition_path, **kwargs):def gpu_load_names(**kwargs):处理和提取训练数据的特征def null_workaround(df, **kwargs):def create_ever_features(gdf, **kwargs):def join_ever_delinq_features(everdf_tmp, delinq_merge, **kwargs):def create_joined_df(gdf, everdf, **kwargs):def create_12_mon_features(joined_df, **kwargs):def combine_joined_12_mon(joined_df, testdf, **kwargs):def final_performance_delinquency(gdf, joined_df, **kwargs):def join_perf_acq_gdfs(perf, acq, **kwargs):def last_mile_cleaning(df, **kwargs):