From 8774dbf56a04401d45aaf3822a52e165193ae685 Mon Sep 17 00:00:00 2001 From: Tim Liu Date: Thu, 23 May 2024 00:17:48 +0800 Subject: [PATCH 01/14] Init version 24.08.0-SNAPSHOT Signed-off-by: Tim Liu --- examples/ML+DL-Examples/Spark-cuML/pca/pom.xml | 2 +- examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml | 2 +- .../RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt | 8 ++++---- examples/UDF-Examples/Spark-cuSpatial/pom.xml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/ML+DL-Examples/Spark-cuML/pca/pom.xml b/examples/ML+DL-Examples/Spark-cuML/pca/pom.xml index 65eb282ee..1d2509011 100644 --- a/examples/ML+DL-Examples/Spark-cuML/pca/pom.xml +++ b/examples/ML+DL-Examples/Spark-cuML/pca/pom.xml @@ -21,7 +21,7 @@ com.nvidia PCAExample jar - 24.06.0-SNAPSHOT + 24.08.0-SNAPSHOT 8 diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml index f8374eef6..bbdbf6dc2 100644 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml @@ -25,7 +25,7 @@ user defined functions for use with the RAPIDS Accelerator for Apache Spark - 24.06.0-SNAPSHOT + 24.08.0-SNAPSHOT 1.8 diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt index 4bdec9b00..ddea97125 100755 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.23.1 FATAL_ERROR) -file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-24.06/RAPIDS.cmake +file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-24.08/RAPIDS.cmake ${CMAKE_BINARY_DIR}/RAPIDS.cmake) include(${CMAKE_BINARY_DIR}/RAPIDS.cmake) @@ -32,7 +32,7 @@ if(DEFINED GPU_ARCHS) endif() rapids_cuda_init_architectures(UDFEXAMPLESJNI) -project(UDFEXAMPLESJNI VERSION 24.06.0 LANGUAGES C CXX CUDA) +project(UDFEXAMPLESJNI VERSION 24.08.0 LANGUAGES C CXX CUDA) option(PER_THREAD_DEFAULT_STREAM "Build with per-thread default stream" OFF) option(BUILD_UDF_BENCHMARKS "Build the benchmarks" OFF) @@ -84,10 +84,10 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -w --expt-extended-lambda --expt-relax set(CUDA_USE_STATIC_CUDA_RUNTIME ON) rapids_cpm_init() -rapids_cpm_find(cudf 24.06.00 +rapids_cpm_find(cudf 24.08.00 CPM_ARGS GIT_REPOSITORY https://github.com/rapidsai/cudf.git - GIT_TAG branch-24.06 + GIT_TAG branch-24.08 GIT_SHALLOW TRUE SOURCE_SUBDIR cpp OPTIONS "BUILD_TESTS OFF" diff --git a/examples/UDF-Examples/Spark-cuSpatial/pom.xml b/examples/UDF-Examples/Spark-cuSpatial/pom.xml index 1a13110a4..86a14e969 100644 --- a/examples/UDF-Examples/Spark-cuSpatial/pom.xml +++ b/examples/UDF-Examples/Spark-cuSpatial/pom.xml @@ -24,7 +24,7 @@ UDF of the cuSpatial case for the RAPIDS Accelerator The RAPIDS accelerated user defined function of the cuSpatial case for use with the RAPIDS Accelerator for Apache Spark - 24.06.0-SNAPSHOT + 24.08.0-SNAPSHOT 1.8 From 6b68fd266bcf006d08395869b65271525b112e29 Mon Sep 17 00:00:00 2001 From: YanxuanLiu <104543031+YanxuanLiu@users.noreply.github.com> Date: Fri, 24 May 2024 10:42:11 +0800 Subject: [PATCH 02/14] add github action (#386) Signed-off-by: YanxuanLiu --- .github/workflows/add-to-project.yml | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/add-to-project.yml diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml new file mode 100644 index 000000000..80f5d8a01 --- /dev/null +++ b/.github/workflows/add-to-project.yml @@ -0,0 +1,35 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Add new issues and pull requests to project + +on: + issues: + types: + - opened + pull_request_target: + types: + - opened + +jobs: + add-to-project: + if: github.repository == 'NVIDIA/spark-rapids-examples' + name: Add new issues and pull requests to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v0.6.1 + with: + project-url: https://github.com/orgs/NVIDIA/projects/4 + github-token: ${{ secrets.PROJECT_TOKEN }} + From b0686ed9c833b5e2fe9a36b1cc0a7660fe20053b Mon Sep 17 00:00:00 2001 From: Cindy Jiang <47068112+cindyyuanjiang@users.noreply.github.com> Date: Thu, 13 Jun 2024 15:29:21 -0700 Subject: [PATCH 03/14] Update tools Databricks notebooks notes about s3 event log support (#391) * add notes about s3 log support Signed-off-by: cindyyuanjiang * add s3 event log support in DB notebook note Signed-off-by: cindyyuanjiang * addressed review feedback Signed-off-by: cindyyuanjiang --------- Signed-off-by: cindyyuanjiang --- ...rk] Profiling Tool Notebook Template.ipynb | 47 ++++++++--------- ...Qualification Tool Notebook Template.ipynb | 51 ++++++++++--------- 2 files changed, 50 insertions(+), 48 deletions(-) diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb index 3cf5bd9ea..83e4108c5 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb @@ -20,8 +20,9 @@ "To run the profiling tool, enter the log path that represents the DBFS location of your Spark GPU event logs. Then, select \"Run all\" to execute the notebook. Once the notebook completes, various output tables will appear below. For more options on running the profiling tool, please refer to the [Profiling Tool User Guide](https://docs.nvidia.com/spark-rapids/user-guide/latest/profiling/quickstart.html#running-the-tool).\n", "\n", "### Note\n", - "- Currently, only local or DBFS event log paths are supported.\n", - "- The DBFS path must use the File API format. Example: `/dbfs/`.\n", + "- Currently, local, S3 or DBFS event log paths are supported.\n", + "- S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html).\n", + "- DBFS path must use the File API format. Example: `/dbfs/`.\n", "- Multiple event logs must be comma-separated.\n", "\n", "### Per-Job Profile\n", @@ -31,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -55,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -75,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -121,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -163,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -187,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -211,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -281,7 +282,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -393,7 +394,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -506,18 +507,18 @@ "nuid": "8dddcaf7-104e-4247-b811-ff7a133b28d4", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "dropdown", "defaultValue": "aws", "label": null, "name": "Cloud Provider", "options": { - "widgetType": "dropdown", "autoCreated": null, "choices": [ "aws", "azure" - ] - } + ], + "widgetType": "dropdown" + }, + "widgetType": "dropdown" } }, "Eventlog Path": { @@ -525,15 +526,15 @@ "nuid": "1272501d-5ad9-42be-ab62-35768b2fc384", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "text", "defaultValue": "/dbfs/user1/profiling_logs", "label": "", "name": "Eventlog Path", "options": { - "widgetType": "text", "autoCreated": false, - "validationRegex": null - } + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" } }, "Output Path": { @@ -541,15 +542,15 @@ "nuid": "ab7e082c-1ef9-4912-8fd7-51bf985eb9c1", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "text", "defaultValue": "/tmp", "label": null, "name": "Output Path", "options": { - "widgetType": "text", "autoCreated": null, - "validationRegex": null - } + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" } } } diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb index 6b6863ae2..2f3aa1d9d 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb @@ -20,14 +20,15 @@ "To run the qualification tool, enter the log path that represents the DBFS location of your Spark GPU event logs. Then, select \"Run all\" to execute the notebook. Once the notebook completes, various output tables will appear below. For more options on running the profiling tool, please refer to the [Qualification Tool User Guide](https://docs.nvidia.com/spark-rapids/user-guide/latest/qualification/quickstart.html#running-the-tool).\n", "\n", "### Note\n", - "- Currently, only local or DBFS event log paths are supported.\n", - "- The DBFS path must use the File API format. Example: `/dbfs/`.\n", + "- Currently, local, S3 or DBFS event log paths are supported.\n", + "- S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html).\n", + "- DBFS path must use the File API format. Example: `/dbfs/`.\n", "- Multiple event logs must be comma-separated.\n" ] }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -51,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -71,7 +72,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -117,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -159,7 +160,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -183,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -207,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -277,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -391,7 +392,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -442,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -500,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 0, + "execution_count": null, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -590,18 +591,18 @@ "nuid": "8dddcaf7-104e-4247-b811-ff7a133b28d4", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "dropdown", "defaultValue": "aws", "label": null, "name": "Cloud Provider", "options": { - "widgetType": "dropdown", "autoCreated": null, "choices": [ "aws", "azure" - ] - } + ], + "widgetType": "dropdown" + }, + "widgetType": "dropdown" } }, "Eventlog Path": { @@ -609,15 +610,15 @@ "nuid": "1272501d-5ad9-42be-ab62-35768b2fc384", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "text", "defaultValue": "/dbfs/user1/qualification_logs", "label": null, "name": "Eventlog Path", "options": { - "widgetType": "text", "autoCreated": null, - "validationRegex": null - } + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" } }, "Output Path": { @@ -625,15 +626,15 @@ "nuid": "ab7e082c-1ef9-4912-8fd7-51bf985eb9c1", "typedWidgetInfo": null, "widgetInfo": { - "widgetType": "text", "defaultValue": "/tmp", "label": null, "name": "Output Path", "options": { - "widgetType": "text", "autoCreated": null, - "validationRegex": null - } + "validationRegex": null, + "widgetType": "text" + }, + "widgetType": "text" } } } From 7c3eab7d47d8aa40756f0faa6709794bf424ca01 Mon Sep 17 00:00:00 2001 From: Cindy Jiang <47068112+cindyyuanjiang@users.noreply.github.com> Date: Tue, 18 Jun 2024 13:19:44 -0700 Subject: [PATCH 04/14] updated readme for db notebooks (#394) Signed-off-by: cindyyuanjiang --- tools/databricks/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/databricks/README.md b/tools/databricks/README.md index 26ca07e56..4c7091037 100644 --- a/tools/databricks/README.md +++ b/tools/databricks/README.md @@ -12,8 +12,9 @@ cluster. Once the notebook is activated, you can enter in the log path location top of the notebook. After that, select *Run all* to execute the tools for the specific logs in the log path. ## Limitations -1. Currently only local or DBFS eventlog paths are supported. -2. DBFS path must use the File API Format. -3. Example: `/dbfs/`. +1. Currently local, S3 or DBFS event log paths are supported. +2. S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html). +3. DBFS path must use the File API Format. Example: `/dbfs/`. +4. Multiple event logs must be comma-separated. **Latest Tools Version Supported** 24.06.0 \ No newline at end of file From 01c7256e93149dad59807db1cee445d4d2646a15 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Mon, 24 Jun 2024 05:31:52 -0500 Subject: [PATCH 05/14] Update RAPIDS accelerated UDF Dockerfile to better match spark-rapids-jni (#395) Signed-off-by: Jason Lowe --- .../RAPIDS-accelerated-UDFs/Dockerfile | 98 ++++++++----------- .../RAPIDS-accelerated-UDFs/README.md | 10 +- 2 files changed, 45 insertions(+), 63 deletions(-) diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/Dockerfile b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/Dockerfile index b5ef1cc0c..f1c252fb5 100644 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/Dockerfile +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/Dockerfile @@ -16,72 +16,54 @@ # A container that can be used to build UDF native code against libcudf ARG CUDA_VERSION=11.8.0 -ARG LINUX_VERSION=ubuntu18.04 +ARG LINUX_VERSION=rockylinux8 FROM nvidia/cuda:${CUDA_VERSION}-devel-${LINUX_VERSION} -ARG DEBIAN_FRONTEND=noninteractive +ARG TOOLSET_VERSION=11 +ENV TOOLSET_VERSION=11 ARG PARALLEL_LEVEL=10 ENV PARALLEL_LEVEL=10 -RUN GCC_VERSION=$(bash -c '\ -CUDA_VERSION=$(nvcc --version | head -n4 | tail -n1 | cut -d" " -f5 | cut -d"," -f1); \ -CUDA_VERSION_MAJOR=$(echo $CUDA_VERSION | tr -d '.' | cut -c 1-2); \ -CUDA_VERSION_MINOR=$(echo $CUDA_VERSION | tr -d '.' | cut -c 3); \ - if [[ "$CUDA_VERSION_MAJOR" == 9 ]]; then echo "7"; \ - elif [[ "$CUDA_VERSION_MAJOR" == 10 ]]; then echo "8"; \ - elif [[ "$CUDA_VERSION_MAJOR" == 11 ]]; then echo "9"; \ - else echo "10"; \ - fi') \ -&& apt update -y \ -&& apt install -y software-properties-common \ -&& add-apt-repository -y ppa:git-core/ppa \ -&& add-apt-repository -y ppa:ubuntu-toolchain-r/test \ -&& add-apt-repository ppa:deadsnakes/ppa \ -&& apt update -y \ -&& apt install -y \ - build-essential git rsync wget \ - gcc-${GCC_VERSION} g++-${GCC_VERSION} \ - openjdk-8-jdk maven tzdata \ - # CMake dependencies - curl libssl-dev libcurl4-openssl-dev zlib1g-dev \ -&& apt autoremove -y \ -&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ -&& update-alternatives \ - --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_VERSION} 100 \ -&& update-alternatives \ - --install /usr/bin/g++ g++ /usr/bin/g++-${GCC_VERSION} 100 \ -# Set gcc-${GCC_VERSION} as the default gcc -&& update-alternatives --set gcc /usr/bin/gcc-${GCC_VERSION} \ -# Set gcc-${GCC_VERSION} as the default g++ -&& update-alternatives --set g++ /usr/bin/g++-${GCC_VERSION} \ -# Set JDK8 as the default Java -&& update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java +### Install basic requirements +RUN dnf --enablerepo=powertools install -y \ + gcc-toolset-${TOOLSET_VERSION} \ + git \ + java-1.8.0-openjdk \ + maven \ + ninja-build \ + patch \ + python39 \ + scl-utils \ + tar \ + wget \ + zlib-devel \ + && alternatives --set python /usr/bin/python3 +# 3.22.3: CUDA architecture 'native' support + flexible CMAKE__*_LAUNCHER for ccache ARG CMAKE_VERSION=3.26.4 +# default x86_64 from x86 build, aarch64 cmake for arm build +ARG CMAKE_ARCH=x86_64 +RUN cd /usr/local && wget --quiet https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}.tar.gz && \ + tar zxf cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}.tar.gz && \ + rm cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}.tar.gz +ENV PATH /usr/local/cmake-${CMAKE_VERSION}-linux-${CMAKE_ARCH}/bin:$PATH -# Install CMake -RUN cd /tmp \ - && curl -fsSLO --compressed "https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION.tar.gz" -o /tmp/cmake-$CMAKE_VERSION.tar.gz \ - && tar -xvzf /tmp/cmake-$CMAKE_VERSION.tar.gz && cd /tmp/cmake-$CMAKE_VERSION \ - && /tmp/cmake-$CMAKE_VERSION/bootstrap \ - --system-curl \ - --parallel=${PARALLEL_LEVEL} \ - && make install -j${PARALLEL_LEVEL} \ - && cd /tmp && rm -rf /tmp/cmake-$CMAKE_VERSION* - -# Install ccache +# ccache for interactive builds ARG CCACHE_VERSION=4.6 RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v${CCACHE_VERSION}/ccache-${CCACHE_VERSION}.tar.gz && \ - tar zxf ccache-${CCACHE_VERSION}.tar.gz && \ - rm ccache-${CCACHE_VERSION}.tar.gz && \ - cd ccache-${CCACHE_VERSION} && \ - mkdir build && \ - cd build && \ - cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DZSTD_FROM_INTERNET=ON \ - -DREDIS_STORAGE_BACKEND=OFF && \ - cmake --build . --parallel ${PARALLEL_LEVEL} --target install && \ - cd ../.. && \ - rm -rf ccache-${CCACHE_VERSION} + tar zxf ccache-${CCACHE_VERSION}.tar.gz && \ + rm ccache-${CCACHE_VERSION}.tar.gz && \ + cd ccache-${CCACHE_VERSION} && \ + mkdir build && \ + cd build && \ + scl enable gcc-toolset-${TOOLSET_VERSION} \ + "cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DZSTD_FROM_INTERNET=ON \ + -DREDIS_STORAGE_BACKEND=OFF && \ + cmake --build . --parallel ${PARALLEL_LEVEL} --target install" && \ + cd ../.. && \ + rm -rf ccache-${CCACHE_VERSION} + +ENTRYPOINT /usr/bin/scl enable gcc-toolset-${TOOLSET_VERSION} -- bash diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md index 7ab7d2fe3..579f718c8 100644 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md @@ -122,8 +122,8 @@ Run the following commands to build and start a docker ```bash cd spark-rapids-examples/examples/UDF-Examples/RAPIDS-accelerated-UDFs -docker build -t my-local:my-udf-example-ubuntu . -nvidia-docker run -it my-local:my-udf-example-ubuntu +docker build -t my-local:my-udf-example . +nvidia-docker run -it my-local:my-udf-example ``` ### Build the udf-examples jar @@ -139,7 +139,7 @@ export CCACHE_DIR="$LOCAL_CCACHE_DIR" export CMAKE_C_COMPILER_LAUNCHER="ccache" export CMAKE_CXX_COMPILER_LAUNCHER="ccache" export CMAKE_CUDA_COMPILER_LAUNCHER="ccache" -export CMAKE_CXX_LINKER_LAUNCHER="ccache +export CMAKE_CXX_LINKER_LAUNCHER="ccache" mvn clean package -Pudf-native-examples ``` @@ -206,9 +206,9 @@ $SPARK_HOME/bin/pyspark --master local[*] \ ### Test native based UDF -Input the following commands to test wordcount JIN UDF +Input the following commands to test wordcount JNI UDF -```bash +```python from pyspark.sql.types import * schema = StructType([ StructField("c1", StringType()), From 24229aaa0fca04f0749ecbee725d01d1bcae633b Mon Sep 17 00:00:00 2001 From: liyuan <84758614+nvliyuan@users.noreply.github.com> Date: Tue, 23 Jul 2024 08:18:14 +0800 Subject: [PATCH 06/14] add hashjoin benchmark and fix dead link issue (#409) * add hashjoin benchmark Signed-off-by: liyuan * fix the dead link Signed-off-by: liyuan * update the code cell to markdown cell Signed-off-by: liyuan * update the readme doc Signed-off-by: liyuan * fix description issue Signed-off-by: liyuan --------- Signed-off-by: liyuan --- .../preparation-python.md | 2 +- .../prepare-package-data/preparation-scala.md | 2 +- docs/img/guides/microbm.png | Bin 24317 -> 75893 bytes .../micro-benchmarks/README.md | 3 +- .../notebooks/micro-benchmarks-cpu.ipynb | 32 +++++++++++++++- .../notebooks/micro-benchmarks-gpu.ipynb | 36 ++++++++++++++++-- 6 files changed, 67 insertions(+), 8 deletions(-) diff --git a/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md b/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md index e34e0557d..c498a1d15 100644 --- a/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md +++ b/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md @@ -16,4 +16,4 @@ Following this [guide](/docs/get-started/xgboost-examples/building-sample-apps/p You need to copy the dataset to `/opt/xgboost`. Use the following links to download the data. 1. [Mortgage dataset](/docs/get-started/xgboost-examples/dataset/mortgage.md) 2. [Taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) -3. [Agaricus dataset](https://gust.dev/r/xgboost-agaricus) +3. [Agaricus dataset](https://github.com/dmlc/xgboost/tree/master/demo/data) diff --git a/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md b/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md index 5fc42d603..4e12a8342 100644 --- a/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md +++ b/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md @@ -16,4 +16,4 @@ Following this [guide](/docs/get-started/xgboost-examples/building-sample-apps/s You need to copy the dataset to `/opt/xgboost`. Use the following links to download the data. 1. [Mortgage dataset](/docs/get-started/xgboost-examples/dataset/mortgage.md) 2. [Taxi dataset](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) -3. [Agaricus dataset](https://gust.dev/r/xgboost-agaricus) +3. [Agaricus dataset](https://github.com/dmlc/xgboost/tree/master/demo/data) diff --git a/docs/img/guides/microbm.png b/docs/img/guides/microbm.png index e04553b37ef9030b31126261b67fe4c4849f1701..581c395438cae6f34f9722d3a6bbd2ed13af662b 100644 GIT binary patch literal 75893 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 O>$Hi5@hd}I*uMdc#drn) literal 24317 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 diff --git a/examples/SQL+DF-Examples/micro-benchmarks/README.md b/examples/SQL+DF-Examples/micro-benchmarks/README.md index 29a17061e..e135ff239 100644 --- a/examples/SQL+DF-Examples/micro-benchmarks/README.md +++ b/examples/SQL+DF-Examples/micro-benchmarks/README.md @@ -3,7 +3,7 @@ Standard industry benchmarks are a great way to measure performance over a period of time but another barometer to measure performance is to measure performance of common operators that are used in the data preprocessing stage or in data analytics. -The microbenchmark notebook in this repo uses four such queries in the chart shown below: +The microbenchmark notebook in this repo uses five such queries in the chart shown below: - **Count Distinct**: a function used to estimate the number of unique page views or unique customers visiting an e-commerce site. @@ -11,6 +11,7 @@ The microbenchmark notebook in this repo uses four such queries in the chart sho timestamped event data in marketing or financial industry. - **Intersect**: an operator used to remove duplicates in a dataframe. - **Cross-join**: A common use for a cross join is to obtain all combinations of items. +- **Hash-join**: Joining two tables together by matching rows based on a common column. These queries were run on a standard eight-nodes CPU cluster with 2 CPU (128 cores), 512GB memory and 1xA100 GPUs per node. The dataset used was of size 3TB with multiple different data types. diff --git a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-cpu.ipynb b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-cpu.ipynb index ce5c5a797..c3707ee8d 100644 --- a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-cpu.ipynb +++ b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-cpu.ipynb @@ -529,6 +529,34 @@ "runMicroBenchmark(spark,\"Crossjoin\",query ,1)" ] }, + { + "cell_type": "markdown", + "id": "56f915c2-9b9a-4982-8c4e-5b570c17bfeb", + "metadata": {}, + "source": [ + "### HashJoin\n", + "This is a microbenchmark for a HashJoin. The query on GPU will be more than 10x times faster than CPU based on the cluster in the readme." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "040603c9-a96f-4017-bcdb-5f93e12996a4", + "metadata": {}, + "outputs": [], + "source": [ + "spark.read.parquet(dataRoot + \"/store_sales\").createOrReplaceTempView(\"store_sales\")\n", + "spark.read.parquet(dataRoot + \"/store_returns\").createOrReplaceTempView(\"store_returns\")\n", + "\n", + "print(\"-\"*50)\n", + "query = '''\n", + "select sum(store_sales.ss_ext_wholesale_cost)\n", + "from store_sales\n", + "join store_returns on (ss_item_sk = sr_item_sk) and (ss_addr_sk=sr_addr_sk)\n", + "'''\n", + "runMicroBenchmark(spark,\"HashJoin\",query,1)" + ] + }, { "cell_type": "code", "execution_count": 24, @@ -550,7 +578,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -564,7 +592,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.12.3" } }, "nbformat": 4, diff --git a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb index 099b047a4..0777594f3 100644 --- a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb +++ b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb @@ -541,18 +541,48 @@ "runMicroBenchmark(spark,\"Crossjoin\",query,2)" ] }, + { + "cell_type": "markdown", + "id": "06b351e6-b7bd-4063-a20b-fe4fd71221f9", + "metadata": {}, + "source": [ + "### HashJoin\n", + "This is a microbenchmark for a HashJoin. The query on GPU will be more than 10x times faster than CPU based on the cluster in the readme." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "191d0c9a-2d3a-40f4-89aa-f61dab5caa90", + "metadata": {}, + "outputs": [], + "source": [ + "spark.read.parquet(dataRoot + \"/store_sales\").createOrReplaceTempView(\"store_sales\")\n", + "spark.read.parquet(dataRoot + \"/store_returns\").createOrReplaceTempView(\"store_returns\")\n", + "\n", + "print(\"-\"*50)\n", + "query = '''\n", + "select sum(store_sales.ss_ext_wholesale_cost)\n", + "from store_sales\n", + "join store_returns on (ss_item_sk = sr_item_sk) and (ss_addr_sk=sr_addr_sk)\n", + "'''\n", + "runMicroBenchmark(spark,\"HashJoin\",query,1)" + ] + }, { "cell_type": "code", "execution_count": null, "id": "fc2092e8", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "spark.stop()" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -566,7 +596,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.12.3" } }, "nbformat": 4, From 1b6400d705a9ebdb7c66139895d681f8b631df31 Mon Sep 17 00:00:00 2001 From: Partho Sarthi Date: Wed, 24 Jul 2024 15:07:26 -0700 Subject: [PATCH 07/14] Automatic conversion of DBFS paths and CSP detection in Databricks Notebook for Tools (#405) * Add translation of dbfs paths and bump latest ver to 24.06.1 * Sign off commit Signed-off-by: Partho Sarthi * Add verbose mode for better debugging Signed-off-by: Partho Sarthi * Automatically detect CSP for databricks notebook for tools Signed-off-by: Partho Sarthi --------- Signed-off-by: Partho Sarthi --- tools/databricks/README.md | 11 +- ...rk] Profiling Tool Notebook Template.ipynb | 121 ++++++++---------- ...Qualification Tool Notebook Template.ipynb | 111 ++++++++-------- 3 files changed, 107 insertions(+), 136 deletions(-) diff --git a/tools/databricks/README.md b/tools/databricks/README.md index 4c7091037..984a579ac 100644 --- a/tools/databricks/README.md +++ b/tools/databricks/README.md @@ -13,8 +13,11 @@ top of the notebook. After that, select *Run all* to execute the tools for the ## Limitations 1. Currently local, S3 or DBFS event log paths are supported. -2. S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html). -3. DBFS path must use the File API Format. Example: `/dbfs/`. -4. Multiple event logs must be comma-separated. +1. S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html). +1. Eventlog path must follow the formats `/dbfs/path/to/eventlog` or `dbfs:/path/to/eventlog` for logs stored in DBFS. +1. Use wildcards for nested lookup of eventlogs. + - For example: `/dbfs/path/to/clusterlogs/*/*` +1. Multiple event logs must be comma-separated. + - For example: `/dbfs/path/to/eventlog1,/dbfs/path/to/eventlog2` -**Latest Tools Version Supported** 24.06.0 \ No newline at end of file +**Latest Tools Version Supported** 24.06.1 \ No newline at end of file diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb index 83e4108c5..5221ebd92 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb @@ -4,10 +4,7 @@ "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, + "cellMetadata": {}, "inputWidgets": {}, "nuid": "df33c614-2ecc-47a0-8600-bc891681997f", "showTitle": false, @@ -22,8 +19,11 @@ "### Note\n", "- Currently, local, S3 or DBFS event log paths are supported.\n", "- S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html).\n", - "- DBFS path must use the File API format. Example: `/dbfs/`.\n", - "- Multiple event logs must be comma-separated.\n", + "- Eventlog path must follow the formats `/dbfs/path/to/eventlog` or `dbfs:/path/to/eventlog` for logs stored in DBFS.\n", + "- Use wildcards for nested lookup of eventlogs. \n", + " - For example: `/dbfs/path/to/clusterlogs/*/*`\n", + "- Multiple event logs must be comma-separated. \n", + " - For example: `/dbfs/path/to/eventlog1,/dbfs/path/to/eventlog2`\n", "\n", "### Per-Job Profile\n", "\n", @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -50,13 +50,13 @@ }, "outputs": [], "source": [ - "TOOLS_VER = \"24.06.0\"\n", + "TOOLS_VER = \"24.06.1\"\n", "print(f\"Using Tools Version: {TOOLS_VER}\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -76,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -97,12 +97,23 @@ "import os\n", "import pandas as pd\n", "\n", - "# Initialize variables from widgets\n", - "dbutils.widgets.dropdown(\"Cloud Provider\", \"aws\", [\"aws\", \"azure\"])\n", - "CSP=dbutils.widgets.get(\"Cloud Provider\")\n", "\n", + "def convert_dbfs_path(path):\n", + " return path.replace(\"dbfs:/\", \"/dbfs/\")\n", + " \n", + "# Detect cloud provider from cluster usage tags\n", + "valid_csps = [\"aws\", \"azure\"]\n", + "CSP=spark.conf.get(\"spark.databricks.clusterUsageTags.cloudProvider\", \"\").lower()\n", + "if CSP not in valid_csps:\n", + " print(f\"ERROR: Cannot detect cloud provider from cluster usage tags. Using '{valid_csps[0]}' as default. \")\n", + " CSP = valid_csps[0]\n", + "else:\n", + " print(f\"Detected Cloud Provider from Spark Configs: '{CSP}'\")\n", + "\n", + "# Initialize variables from widgets\n", "dbutils.widgets.text(\"Eventlog Path\", \"/dbfs/user1/profiling_logs\")\n", "EVENTLOG_PATH=dbutils.widgets.get(\"Eventlog Path\")\n", + "EVENTLOG_PATH=convert_dbfs_path(EVENTLOG_PATH)\n", "\n", "dbutils.widgets.text(\"Output Path\", \"/tmp\")\n", "OUTPUT_PATH=dbutils.widgets.get(\"Output Path\")\n", @@ -122,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -138,17 +149,14 @@ "outputs": [], "source": [ "%sh\n", - "spark_rapids profiling --platform databricks-$CSP --eventlogs $EVENTLOG_PATH -o $OUTPUT_PATH > $CONSOLE_OUTPUT_PATH 2> $CONSOLE_ERROR_PATH" + "spark_rapids profiling --platform databricks-$CSP --eventlogs \"$EVENTLOG_PATH\" -o \"$OUTPUT_PATH\" --verbose > \"$CONSOLE_OUTPUT_PATH\" 2> \"$CONSOLE_ERROR_PATH\"" ] }, { "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, + "cellMetadata": {}, "inputWidgets": {}, "nuid": "f83af6c8-5a79-4a46-965b-38a4cb621877", "showTitle": false, @@ -157,14 +165,12 @@ }, "source": [ "## Console Output\n", - "Console output shows the recommended configurations for each app\n", - "\n", - "**Note**: Use the `--verbose` flag in the command above for more detailed output.\n" + "Console output shows the recommended configurations for each app\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -188,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -198,7 +204,7 @@ "inputWidgets": {}, "nuid": "f3c68b28-fc62-40ae-8528-799f3fc7507e", "showTitle": true, - "title": "Show Error Log" + "title": "Show Logs" }, "jupyter": { "source_hidden": true @@ -212,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -282,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -374,10 +380,7 @@ "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, + "cellMetadata": {}, "inputWidgets": {}, "nuid": "bbe50fde-0bd6-4281-95fd-6a1ec6f17ab2", "showTitle": false, @@ -394,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -452,7 +455,7 @@ "stack": true }, "nuid": "91c1bfb2-695a-4e5c-8a25-848a433108dc", - "origId": 825198511668411, + "origId": 1075819839476955, "title": "Executive View", "version": "DashboardViewV1", "width": 1600 @@ -466,7 +469,7 @@ "stack": true }, "nuid": "62243296-4562-4f06-90ac-d7a609f19c16", - "origId": 825198511668412, + "origId": 1075819839476956, "title": "App View", "version": "DashboardViewV1", "width": 1920 @@ -476,65 +479,41 @@ "language": "python", "notebookMetadata": { "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 825198511668406, + "commandId": 203373918309288, "dataframes": [ "_sqldf" ] }, "pythonIndentUnit": 2, "widgetLayout": [ - { - "breakBefore": false, - "name": "Cloud Provider", - "width": 183 - }, { "breakBefore": false, "name": "Eventlog Path", - "width": 728 + "width": 778 }, { "breakBefore": false, "name": "Output Path", - "width": 232 + "width": 302 } ] }, "notebookName": "[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template", "widgets": { - "Cloud Provider": { - "currentValue": "aws", - "nuid": "8dddcaf7-104e-4247-b811-ff7a133b28d4", - "typedWidgetInfo": null, - "widgetInfo": { - "defaultValue": "aws", - "label": null, - "name": "Cloud Provider", - "options": { - "autoCreated": null, - "choices": [ - "aws", - "azure" - ], - "widgetType": "dropdown" - }, - "widgetType": "dropdown" - } - }, "Eventlog Path": { "currentValue": "/dbfs/user1/profiling_logs", "nuid": "1272501d-5ad9-42be-ab62-35768b2fc384", "typedWidgetInfo": null, "widgetInfo": { + "widgetType": "text", "defaultValue": "/dbfs/user1/profiling_logs", - "label": "", + "label": null, "name": "Eventlog Path", "options": { - "autoCreated": false, - "validationRegex": null, - "widgetType": "text" - }, - "widgetType": "text" + "widgetType": "text", + "autoCreated": null, + "validationRegex": null + } } }, "Output Path": { @@ -542,15 +521,15 @@ "nuid": "ab7e082c-1ef9-4912-8fd7-51bf985eb9c1", "typedWidgetInfo": null, "widgetInfo": { + "widgetType": "text", "defaultValue": "/tmp", "label": null, "name": "Output Path", "options": { + "widgetType": "text", "autoCreated": null, - "validationRegex": null, - "widgetType": "text" - }, - "widgetType": "text" + "validationRegex": null + } } } } diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb index 2f3aa1d9d..4eab0c475 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb @@ -22,13 +22,16 @@ "### Note\n", "- Currently, local, S3 or DBFS event log paths are supported.\n", "- S3 path is only supported on Databricks AWS using [instance profiles](https://docs.databricks.com/en/connect/storage/tutorial-s3-instance-profile.html).\n", - "- DBFS path must use the File API format. Example: `/dbfs/`.\n", - "- Multiple event logs must be comma-separated.\n" + "- Eventlog path must follow the formats `/dbfs/path/to/eventlog` or `dbfs:/path/to/eventlog` for logs stored in DBFS.\n", + "- Use wildcards for nested lookup of eventlogs. \n", + " - For example: `/dbfs/path/to/clusterlogs/*/*`\n", + "- Multiple event logs must be comma-separated. \n", + " - For example: `/dbfs/path/to/eventlog1,/dbfs/path/to/eventlog2`\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -46,13 +49,13 @@ }, "outputs": [], "source": [ - "TOOLS_VER = \"24.06.0\"\n", + "TOOLS_VER = \"24.06.1\"\n", "print(f\"Using Tools Version: {TOOLS_VER}\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -72,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -93,16 +96,28 @@ "import os\n", "import pandas as pd\n", "\n", - "# Initialize variables from widgets\n", - "dbutils.widgets.dropdown(\"Cloud Provider\", \"aws\", [\"aws\", \"azure\"])\n", - "CSP=dbutils.widgets.get(\"Cloud Provider\")\n", "\n", + "def convert_dbfs_path(path):\n", + " return path.replace(\"dbfs:/\", \"/dbfs/\")\n", + " \n", + "# Detect cloud provider from cluster usage tags\n", + "valid_csps = [\"aws\", \"azure\"]\n", + "CSP=spark.conf.get(\"spark.databricks.clusterUsageTags.cloudProvider\", \"\").lower()\n", + "if CSP not in valid_csps:\n", + " print(f\"ERROR: Cannot detect cloud provider from cluster usage tags. Using '{valid_csps[0]}' as default. \")\n", + " CSP = valid_csps[0]\n", + "else:\n", + " print(f\"Detected Cloud Provider from Spark Configs: '{CSP}'\")\n", + "\n", + "# Initialize variables from widgets\n", "dbutils.widgets.text(\"Eventlog Path\", \"/dbfs/user1/qualification_logs\")\n", "EVENTLOG_PATH=dbutils.widgets.get(\"Eventlog Path\")\n", + "EVENTLOG_PATH=convert_dbfs_path(EVENTLOG_PATH)\n", "\n", "dbutils.widgets.text(\"Output Path\", \"/tmp\")\n", "OUTPUT_PATH=dbutils.widgets.get(\"Output Path\")\n", "\n", + " \n", "# Setup environment variables\n", "os.environ[\"CSP\"] = CSP\n", "os.environ[\"EVENTLOG_PATH\"] = EVENTLOG_PATH\n", @@ -118,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -134,7 +149,7 @@ "outputs": [], "source": [ "%sh\n", - "spark_rapids qualification --platform databricks-$CSP --eventlogs $EVENTLOG_PATH -o $OUTPUT_PATH > $CONSOLE_OUTPUT_PATH 2> $CONSOLE_ERROR_PATH" + "spark_rapids qualification --platform databricks-$CSP --eventlogs \"$EVENTLOG_PATH\" -o \"$OUTPUT_PATH\" --verbose > \"$CONSOLE_OUTPUT_PATH\" 2> \"$CONSOLE_ERROR_PATH\"" ] }, { @@ -153,14 +168,12 @@ }, "source": [ "## Console Output\n", - "Console output shows the top candidates and their estimated GPU speedup.\n", - "\n", - "**Note**: Use the `--verbose` flag in the command above for more detailed output.\n" + "Console output shows the top candidates and their estimated GPU speedup.\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -184,7 +197,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -194,7 +207,7 @@ "inputWidgets": {}, "nuid": "f3c68b28-fc62-40ae-8528-799f3fc7507e", "showTitle": true, - "title": "Show Error Log" + "title": "Show Logs" }, "jupyter": { "source_hidden": true @@ -208,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -278,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -392,7 +405,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -443,7 +456,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -501,7 +514,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "application/vnd.databricks.v1+cell": { "cellMetadata": { @@ -536,7 +549,7 @@ "stack": true }, "nuid": "91c1bfb2-695a-4e5c-8a25-848a433108dc", - "origId": 825198511668429, + "origId": 1075819839476974, "title": "Executive View", "version": "DashboardViewV1", "width": 1600 @@ -550,7 +563,7 @@ "stack": true }, "nuid": "62243296-4562-4f06-90ac-d7a609f19c16", - "origId": 825198511668430, + "origId": 1075819839476975, "title": "App View", "version": "DashboardViewV1", "width": 1920 @@ -560,65 +573,41 @@ "language": "python", "notebookMetadata": { "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 825198511668420, + "commandId": 1075819839476965, "dataframes": [ "_sqldf" ] }, "pythonIndentUnit": 2, "widgetLayout": [ - { - "breakBefore": false, - "name": "Cloud Provider", - "width": 183 - }, { "breakBefore": false, "name": "Eventlog Path", - "width": 728 + "width": 778 }, { "breakBefore": false, "name": "Output Path", - "width": 232 + "width": 302 } ] }, "notebookName": "[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template", "widgets": { - "Cloud Provider": { - "currentValue": "aws", - "nuid": "8dddcaf7-104e-4247-b811-ff7a133b28d4", - "typedWidgetInfo": null, - "widgetInfo": { - "defaultValue": "aws", - "label": null, - "name": "Cloud Provider", - "options": { - "autoCreated": null, - "choices": [ - "aws", - "azure" - ], - "widgetType": "dropdown" - }, - "widgetType": "dropdown" - } - }, "Eventlog Path": { "currentValue": "/dbfs/user1/qualification_logs", "nuid": "1272501d-5ad9-42be-ab62-35768b2fc384", "typedWidgetInfo": null, "widgetInfo": { + "widgetType": "text", "defaultValue": "/dbfs/user1/qualification_logs", - "label": null, + "label": "", "name": "Eventlog Path", "options": { - "autoCreated": null, - "validationRegex": null, - "widgetType": "text" - }, - "widgetType": "text" + "widgetType": "text", + "autoCreated": false, + "validationRegex": null + } } }, "Output Path": { @@ -626,15 +615,15 @@ "nuid": "ab7e082c-1ef9-4912-8fd7-51bf985eb9c1", "typedWidgetInfo": null, "widgetInfo": { + "widgetType": "text", "defaultValue": "/tmp", "label": null, "name": "Output Path", "options": { + "widgetType": "text", "autoCreated": null, - "validationRegex": null, - "widgetType": "text" - }, - "widgetType": "text" + "validationRegex": null + } } } } From 00d6ec2e049b268cb11841ab839b7241a649364a Mon Sep 17 00:00:00 2001 From: Tim Liu Date: Thu, 25 Jul 2024 09:41:54 +0800 Subject: [PATCH 08/14] Auto merge PRs to branch-24.10 from branch-24.08 [skip ci] (#410) Signed-off-by: Tim Liu --- .github/workflows/auto-merge.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index bab0f3f71..9473dae4e 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -18,7 +18,7 @@ name: auto-merge HEAD to BASE on: pull_request_target: branches: - - branch-24.06 + - branch-24.08 types: [closed] jobs: @@ -29,14 +29,14 @@ jobs: steps: - uses: actions/checkout@v4 with: - ref: branch-24.06 # force to fetch from latest upstream instead of PR ref + ref: branch-24.08 # force to fetch from latest upstream instead of PR ref - name: auto-merge job uses: ./.github/workflows/auto-merge env: OWNER: NVIDIA REPO_NAME: spark-rapids-examples - HEAD: branch-24.06 - BASE: branch-24.08 + HEAD: branch-24.08 + BASE: branch-24.10 AUTOMERGE_TOKEN: ${{ secrets.AUTOMERGE_TOKEN }} # use to merge PR From a240eae3cc7800f33d3627101b86f876308fb26e Mon Sep 17 00:00:00 2001 From: liyuan <84758614+nvliyuan@users.noreply.github.com> Date: Thu, 25 Jul 2024 11:48:30 +0800 Subject: [PATCH 09/14] fix cicd issue for hashjoin microbenchmark (#413) * add hashjoin benchmark Signed-off-by: liyuan * fix the dead link Signed-off-by: liyuan * update the code cell to markdown cell Signed-off-by: liyuan * update the readme doc Signed-off-by: liyuan * fix description issue Signed-off-by: liyuan * fix cicd issue Signed-off-by: liyuan --------- Signed-off-by: liyuan --- datasets/tpcds-small.tar.gz | Bin 375838 -> 455170 bytes .../notebooks/micro-benchmarks-cpu.ipynb | 4 ++-- .../notebooks/micro-benchmarks-gpu.ipynb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/datasets/tpcds-small.tar.gz b/datasets/tpcds-small.tar.gz index 06522427343626e288bb43a8fae0efa3974a221e..c91120562fcdf93f9db2ab8bbeb350d111241615 100644 GIT binary patch literal 455170 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

%S5tA(o0SB7RC2wByRdh1)zJDJMEsK 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

;}k&Z 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ΞFQ?2-G9m?P`o$qV$v>5Ut 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%0Au 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ⅆ1 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

W dqmqkxCn|Te&q=TRp_7mgOMhUFKXf5{_!na+_&xvt literal 375838 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%0A=NuF-i{O}_2@T<{FGwq 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 Date: Thu, 8 Aug 2024 10:54:33 +0800 Subject: [PATCH 10/14] Drop cuSpatial example (#419) Signed-off-by: Gary Shen --- README.md | 10 +- .../UDF-Examples/Spark-cuSpatial/.gitignore | 65 ---- .../UDF-Examples/Spark-cuSpatial/Dockerfile | 46 --- .../Spark-cuSpatial/Dockerfile.awsdb | 67 ---- .../UDF-Examples/Spark-cuSpatial/README.md | 164 -------- .../UDF-Examples/Spark-cuSpatial/gpu-run.sh | 50 --- .../notebooks/cuspatial_sample_db.ipynb | 328 ---------------- .../cuspatial_sample_standalone.ipynb | 100 ----- .../spacial-cpu-apache-sedona_db.ipynb | 364 ------------------ examples/UDF-Examples/Spark-cuSpatial/pom.xml | 140 ------- .../Spark-cuSpatial/spatial_join.py | 47 --- .../spark/rapids/udf/PointInPolygon.java | 162 -------- .../spark/rapids/udf/UDFNativeLoader.java | 68 ---- .../src/main/native/CMakeLists.txt | 115 ------ .../src/main/native/src/PointInPolygonJni.cpp | 345 ----------------- .../Spark-cuSpatial/tools/convert_data.sh | 19 - .../Spark-cuSpatial/tools/to_parquet.py | 41 -- 17 files changed, 4 insertions(+), 2127 deletions(-) delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/.gitignore delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/Dockerfile delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/Dockerfile.awsdb delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/README.md delete mode 100755 examples/UDF-Examples/Spark-cuSpatial/gpu-run.sh delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_db.ipynb delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_standalone.ipynb delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/notebooks/spacial-cpu-apache-sedona_db.ipynb delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/pom.xml delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/spatial_join.py delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/PointInPolygon.java delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/UDFNativeLoader.java delete mode 100755 examples/UDF-Examples/Spark-cuSpatial/src/main/native/CMakeLists.txt delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/src/main/native/src/PointInPolygonJni.cpp delete mode 100755 examples/UDF-Examples/Spark-cuSpatial/tools/convert_data.sh delete mode 100644 examples/UDF-Examples/Spark-cuSpatial/tools/to_parquet.py diff --git a/README.md b/README.md index a75e6dacc..549a2230c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,6 @@ Here is the list of notebooks in this repo: | 5 | XGBoost | Taxi (Scala) | End-to-end ETL + XGBoost example to predict taxi trip fare amount with [NYC taxi trips data set](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) | 6 | ML/DL | Criteo Training | ETL and deep learning training of the Criteo 1TB Click Logs dataset | 7 | ML/DL | PCA End-to-End | Spark MLlib based PCA example to train and transform with a synthetic dataset -| 8 | UDF | cuSpatial - Point in Polygon | Spark cuSpatial example for Point in Polygon function using NYC Taxi pickup location dataset Here is the list of Apache Spark applications (Scala and PySpark) that can be built for running on GPU with RAPIDS Accelerator in this repo: @@ -36,8 +35,7 @@ can be built for running on GPU with RAPIDS Accelerator in this repo: | 2 | XGBoost | Mortgage (Scala) | End-to-end ETL + XGBoost example to predict mortgage default with [Fannie Mae Single-Family Loan Performance Data](https://capitalmarkets.fanniemae.com/credit-risk-transfer/single-family-credit-risk-transfer/fannie-mae-single-family-loan-performance-data) | 3 | XGBoost | Taxi (Scala) | End-to-end ETL + XGBoost example to predict taxi trip fare amount with [NYC taxi trips data set](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) | 4 | ML/DL | PCA End-to-End | Spark MLlib based PCA example to train and transform with a synthetic dataset -| 5 | UDF | cuSpatial - Point in Polygon | Spark cuSpatial example for Point in Polygon function using NYC Taxi pickup location dataset -| 6 | UDF | URL Decode | Decodes URL-encoded strings using the [Java APIs of RAPIDS cudf](https://docs.rapids.ai/api/cudf-java/legacy/) -| 7 | UDF | URL Encode | URL-encodes strings using the [Java APIs of RAPIDS cudf](https://docs.rapids.ai/api/cudf-java/legacy/) -| 8 | UDF | [CosineSimilarity](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/java/com/nvidia/spark/rapids/udf/java/CosineSimilarity.java) | Computes the cosine similarity between two float vectors using [native code](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/src) -| 9 | UDF | [StringWordCount](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/java/com/nvidia/spark/rapids/udf/hive/StringWordCount.java) | Implements a Hive simple UDF using [native code](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/src) to count words in strings +| 5 | UDF | URL Decode | Decodes URL-encoded strings using the [Java APIs of RAPIDS cudf](https://docs.rapids.ai/api/cudf-java/legacy/) +| 6 | UDF | URL Encode | URL-encodes strings using the [Java APIs of RAPIDS cudf](https://docs.rapids.ai/api/cudf-java/legacy/) +| 7 | UDF | [CosineSimilarity](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/java/com/nvidia/spark/rapids/udf/java/CosineSimilarity.java) | Computes the cosine similarity between two float vectors using [native code](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/src) +| 8 | UDF | [StringWordCount](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/java/com/nvidia/spark/rapids/udf/hive/StringWordCount.java) | Implements a Hive simple UDF using [native code](./examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/src) to count words in strings diff --git a/examples/UDF-Examples/Spark-cuSpatial/.gitignore b/examples/UDF-Examples/Spark-cuSpatial/.gitignore deleted file mode 100644 index f5897467a..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/.gitignore +++ /dev/null @@ -1,65 +0,0 @@ -## Common -__pycache__ -*.py[cod] -*$py.class -*.a -*.o -*.so -*.dylib -.cache -.vscode -*.swp -*.pytest_cache -DartConfiguration.tcl -.DS_Store -*.manifest -*.spec -.nfs* -.clangd - -## Patching -*.diff -*.orig -*.rej - -## C++ build directories & artifacts -CMakeFiles/ -Debug -build/ - -## Eclipse IDE -.project -.cproject -.settings - -## IntelliJ IDE -.idea/ -.idea_modules/ -*.iml -*.ipr -*.iws - -#Java -target - -# Jupyter Notebook -.ipynb_checkpoints - -# pyenv -.python-version - -# dotenv -.env - -# virtualenv -.venv -venv/ -ENV/ - -## VSCode IDE -.vscode - -# protobuf -**/*_pb2.py - -cufile.log diff --git a/examples/UDF-Examples/Spark-cuSpatial/Dockerfile b/examples/UDF-Examples/Spark-cuSpatial/Dockerfile deleted file mode 100644 index 6d1afc4e6..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -ARG CUDA_VER=11.2.2 -FROM nvidia/cuda:${CUDA_VER}-devel-ubuntu18.04 - -RUN apt-key adv --fetch-keys https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub -RUN apt-get update -RUN apt-get install -y wget ninja-build git - -ENV PATH="/root/miniconda3/bin:${PATH}" -ARG PATH="/root/miniconda3/bin:${PATH}" -RUN wget --quiet \ - https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-x86_64.sh \ - && mkdir /root/.conda \ - && bash Miniconda3-py38_4.10.3-Linux-x86_64.sh -b \ - && rm -f Miniconda3-py38_4.10.3-Linux-x86_64.sh \ - && conda init - -SHELL ["conda", "run", "--no-capture-output", "-n", "base", "/bin/bash", "-c"] -RUN echo $PATH -RUN echo $CONDA_PREFIX -RUN conda --version - -RUN conda install -c conda-forge openjdk=8 maven=3.8.1 -y - -RUN wget --quiet \ - https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.tar.gz \ - && tar -xzf cmake-3.21.3-linux-x86_64.tar.gz \ - && rm -rf cmake-3.21.3-linux-x86_64.tar.gz - -ENV PATH="/cmake-3.21.3-linux-x86_64/bin:${PATH}" \ No newline at end of file diff --git a/examples/UDF-Examples/Spark-cuSpatial/Dockerfile.awsdb b/examples/UDF-Examples/Spark-cuSpatial/Dockerfile.awsdb deleted file mode 100644 index 8f7bdc660..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/Dockerfile.awsdb +++ /dev/null @@ -1,67 +0,0 @@ -# -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -FROM nvidia/cuda:11.2.2-devel-ubuntu18.04 - -ENV DEBIAN_FRONTEND=noninteractive - -# update cuda pub key to avoid GPG error -RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - -# See https://github.com/databricks/containers/blob/master/ubuntu/minimal/Dockerfile -RUN apt-get update && \ - apt-get install --yes --no-install-recommends \ - openjdk-8-jdk \ - openjdk-8-jre \ - lsb-release \ - iproute2 \ - bash \ - sudo \ - coreutils \ - procps \ - wget && \ - /var/lib/dpkg/info/ca-certificates-java.postinst configure && \ - rm -rf /var/lib/apt/lists/* - -ENV PATH /databricks/conda/bin:$PATH - -RUN wget -q https://repo.continuum.io/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh -O miniconda.sh && \ - bash miniconda.sh -b -p /databricks/conda && \ - rm miniconda.sh && \ - # Source conda.sh for all login and interactive shells. - ln -s /databricks/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \ - echo ". /etc/profile.d/conda.sh" >> ~/.bashrc && \ - # Set always_yes for non-interactive shells. - conda config --system --set always_yes True && \ - conda clean --all - -RUN conda install -c rapidsai-nightly -c nvidia -c conda-forge -c defaults libcuspatial=23.02 -RUN conda install -c conda-forge libgdal==3.3.1 -RUN pip install jupyter -ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-amd64 -ENV PATH $PATH:/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin:/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin - -RUN apt-get update && apt-get install wget openssh-client openssh-server \ - -y --allow-downgrades --allow-change-held-packages --no-install-recommends -RUN useradd --create-home --shell /bin/bash --groups sudo ubuntu - -ENV PYSPARK_PYTHON=/databricks/conda/bin/python -ENV USER root -ENV DEFAULT_DATABRICKS_ROOT_CONDA_ENV=base -ENV DATABRICKS_ROOT_CONDA_ENV=base -ENV LD_LIBRARY_PATH=/databricks/conda/lib:$LD_LIBRARY_PATH -# required by DB -RUN pip install virtualenv diff --git a/examples/UDF-Examples/Spark-cuSpatial/README.md b/examples/UDF-Examples/Spark-cuSpatial/README.md deleted file mode 100644 index 6ba27ae2e..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/README.md +++ /dev/null @@ -1,164 +0,0 @@ -# Spark-cuSpatial - -This is a Spark RapidsUDF application to illustrate how to use [cuSpatial](https://github.com/rapidsai/cuspatial) to solve a point-in-polygon problem. -It implements a [RapidsUDF](https://nvidia.github.io/spark-rapids/docs/additional-functionality/rapids-udfs.html#adding-gpu-implementations-to-udfs) -interface to call the cuSpatial functions through JNI. It can be run on a distributed Spark cluster with scalability. - -## Performance -We got the end-2-end hot run times as below table when running with 2009 NYC Taxi trip pickup location, -which includes 170,896,055 points, and 3 sets of polygons(taxi_zone, nyct2000, nycd Community-Districts). -The point data can be downloaded from [TLC Trip Record Data](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). -The polygon data can be downloaded from [taxi_zone dataset](https://data.cityofnewyork.us/Transportation/NYC-Taxi-Zones/d3c5-ddgc), -[nyct2000 dataset](https://data.cityofnewyork.us/City-Government/2000-Census-Tracts/ysjj-vb9j) and -[nycd Community-Districts dataset](https://data.cityofnewyork.us/City-Government/Community-Districts/yfnk-k7r4) - -| Environment | Taxi_zones (263 Polygons) | Nyct2000 (2216 Polygons) | Nycd Community-Districts (71 Complex Polygons)| -| ----------- | :---------: | :---------: | :---------: | -| 4-core CPU | 3.9 minutes | 4.0 minutes| 4.1 minutes | -| 1 GPU(T4) on Databricks | 25 seconds | 27 seconds | 28 seconds| -| 2 GPU(T4) on Databricks | 15 seconds | 14 seconds | 17 seconds | -| 4 GPU(T4) on Databricks | 11 seconds | 11 seconds | 12 seconds | - -Note: Please update the `x,y` column names to `Start_Lon,Start_Lat` in -the [notebook](./notebooks/cuspatial_sample_db.ipynb) if you test with the download points. -This demo could only work with v23.02.0 version or previous. - -taxi-zones map: - - - -nyct2000 map: - - - -nyct-community-districts map: - - - -## Build -Firstly build the UDF JAR from source code before running this demo. -You can build the JAR [in Docker](#build-in-docker) with the provided [Dockerfile](Dockerfile), -or [in local machine](#build-in-local-machine) after prerequisites. - -### Build in Docker -1. Build the docker image [Dockerfile](Dockerfile), then run the container. - ```Bash - docker build -f Dockerfile . -t build-spark-cuspatial - docker run -it build-spark-cuspatial bash - ``` -2. Bash into the Docker and install libcuspatial - ```Bash - conda install -c rapidsai-nightly -c nvidia -c conda-forge -c defaults libcuspatial=23.02 - ``` -3. Get the code, then run `mvn package`. - ```Bash - git clone https://github.com/NVIDIA/spark-rapids-examples.git - cd spark-rapids-examples/examples/UDF-Examples/Spark-cuSpatial/ - mvn package - ``` -4. You'll get the jar named `spark-cuspatial-.jar` in the target folder. - -Note: The docker env is just for building the jar, not for running the application. - -### Build in local machine: -1. Essential build tools: - - [cmake(>=3.20)](https://cmake.org/download/), - - [ninja(>=1.10)](https://github.com/ninja-build/ninja/releases), - - [gcc(>=9.3)](https://gcc.gnu.org/releases.html) -2. [CUDA Toolkit(>=11.0)](https://developer.nvidia.com/cuda-toolkit) -3. conda: use [miniconda](https://docs.conda.io/en/latest/miniconda.html) to maintain header files and cmake dependecies -4. [cuspatial](https://github.com/rapidsai/cuspatial): install libcuspatial - ```Bash - # Install libcuspatial from conda - conda install -c rapidsai-nightly -c nvidia -c conda-forge -c defaults libcuspatial=23.02 - ``` -5. Build the JAR using `mvn package`. - ```Bash - git clone https://github.com/NVIDIA/spark-rapids-examples.git - cd spark-rapids-examples/examples/Spark-cuSpatial/ - mvn package - ``` -6. `spark-cuspatial-.jar` will be generated in the target folder. - -## Run -### GPU Demo on Spark Standalone on-premises cluster -1. Set up [a standalone cluster](../../../docs/get-started/xgboost-examples/on-prem-cluster/standalone-scala.md) of Spark. - Make sure the conda/lib is included in LD_LIBRARY_PATH, so that spark executors can load libcuspatial.so. - -2. Download Spark RAPIDS JAR - * [Spark RAPIDS JAR v23.02.0](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/23.02.0/rapids-4-spark_2.12-23.02.0.jar) or above -3. Prepare sample dataset and JARs. Copy the [sample dataset](../../../datasets/cuspatial_data.tar.gz) to `/data/cuspatial_data/`. - Copy Spark RAPIDS JAR and `spark-cuspatial-.jar` to `/data/cuspatial_data/jars/`. - If you build the `spark-cuspatial-.jar` in docker, please copy the jar from docker to local: - ``` - docker cp YOUR_DOCKER_CONTAINER:/PATH/TO/spark-cuspatial-.jar ./YOUR_LOCAL_PATH - ``` - Note: update the paths in `gpu-run.sh` accordingly. -4. Run `gpu-run.sh` - ```Bash - ./gpu-run.sh - ``` -### GPU Demo on AWS Databricks -1. Build a customized docker image using [Dockerfile.awsdb](Dockerfile.awsdb) and push to a Docker registry such as [Docker Hub](https://hub.docker.com/) which can be accessible by AWS Databricks. - ```Bash - # replace your dockerhub repo, your tag or any other repo AWS DB can access - docker build -f Dockerfile.awsdb . -t : - docker push : - ``` - -2. Follow the [Spark-rapids get-started document](https://docs.nvidia.com/spark-rapids/user-guide/latest/getting-started/databricks.html) to create a GPU cluster on AWS Databricks. - Below are some different steps since a custom docker image is used with Databricks: - * Databricks Runtime Version - Choose a non-ML Databricks Runtime such as `Runtime: 9.1 LTS(Scala 2.12, Spark 3.1.2)` and - choose GPU AWS instance type such as `g4dn.xlarge`. Note that ML runtime does not support customized docker container with below messages: -`Support for Databricks container services requires runtime version 5.3+` - and the `Confirm` button is disabled. - * Use your own Docker container - Input `Docker Image URL` as `your-dockerhub-repo:your-tag` - * Follow the Databricks get-started document for other steps. - -3. Copy the sample [cuspatial_data.tar.gz](../../../datasets/cuspatial_data.tar.gz) or your data to DBFS by using Databricks CLI. - ```Bash - # extract the data - tar zxf cuspatial_data.tar.gz - databricks fs cp -r cuspatial_data/* dbfs:/data/cuspatial_data/ - databricks fs ls dbfs:/data/cuspatial_data/ - # it should have below 2 folders. - points - polygons - ``` - The sample points and polygons are randomly generated. - - Sample polygons: - - - -4. Upload `spark-cuspatial-.jar` on dbfs and then install it in Databricks cluster. - - - -5. Import [cuspatial_sample.ipynb](notebooks/cuspatial_sample_db.ipynb) to Databricks workspace, attach it to Databricks cluster and run it. - -### CPU Demo on AWS Databricks -1. Create a Databricks cluster. For example, Databricks Runtime 10.3. - -2. Install the Sedona jars and Sedona Python libs on Databricks using web UI. - The Sedona version should be 1.1.1-incubating or higher. - * Install below jars from Maven Coordinates in Libraries tab: - ```Bash - org.apache.sedona:sedona-python-adapter-3.0_2.12:1.2.0-incubating - org.datasyslab:geotools-wrapper:1.1.0-25.2 - ``` - * To enable python support, install below python lib from PyPI in Libraries tab - ```Bash - apache-sedona - ``` -3. From your cluster configuration (Cluster -> Edit -> Configuration -> Advanced options -> Spark) activate the - Sedona functions and the kryo serializer by adding below to the Spark Config - ```Bash - spark.sql.extensions org.apache.sedona.viz.sql.SedonaVizExtensions,org.apache.sedona.sql.SedonaSqlExtensions - spark.serializer org.apache.spark.serializer.KryoSerializer - spark.kryo.registrator org.apache.sedona.core.serde.SedonaKryoRegistrator - ``` - -4. Upload the sample data files to DBFS, start the cluster, attach the [notebook](notebooks/spacial-cpu-apache-sedona_db.ipynb) to the cluster, and run it. diff --git a/examples/UDF-Examples/Spark-cuSpatial/gpu-run.sh b/examples/UDF-Examples/Spark-cuSpatial/gpu-run.sh deleted file mode 100755 index c79947967..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/gpu-run.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# change to your spark folder -SPARK_HOME=${SPARK_HOME:-/data/spark-3.2.0-bin-hadoop3.2} - -# change this path to your root path for the dataset -ROOT_PATH=${ROOT_PATH:-/data/cuspatial_data} -# Extract the sample dataset in ../../datasets/cuspatial_data.tar.gz -# Copy the polygons and points data into the root path or change the root path to where they are -SHAPE_FILE_DIR=$ROOT_PATH/polygons -SHAPE_FILE_NAME="polygons" -DATA_IN_PATH=$ROOT_PATH/points -DATA_OUT_PATH=$ROOT_PATH/output - -rm -rf $DATA_OUT_PATH - -# the path to keep the jars of spark-rapids & spark-cuspatial -JARS=$ROOT_PATH/jars - -JARS_PATH=${JARS_PATH:-$JARS/rapids-4-spark_2.12-23.02.0.jar,$JARS/spark-cuspatial-23.02.0.jar} - -$SPARK_HOME/bin/spark-submit --master spark://$HOSTNAME:7077 \ ---name "Gpu Spatial Join UDF" \ ---executor-memory 20G \ ---executor-cores 10 \ ---conf spark.task.cpus=1 \ ---conf spark.sql.adaptive.enabled=false \ ---conf spark.plugins=com.nvidia.spark.SQLPlugin \ ---conf spark.rapids.sql.explain=all \ ---conf spark.executor.resource.gpu.amount=1 \ ---conf spark.cuspatial.sql.udf.shapeFileName="$SHAPE_FILE_NAME.shp" \ ---conf spark.driver.extraLibraryPath=YOUR_LD_LIBRARY_PATH \ ---conf spark.executor.extraLibraryPath=YOUR_LD_LIBRARY_PATH \ ---jars $JARS_PATH \ ---files $SHAPE_FILE_DIR/$SHAPE_FILE_NAME.shp,$SHAPE_FILE_DIR/$SHAPE_FILE_NAME.shx \ -spatial_join.py $DATA_IN_PATH $DATA_OUT_PATH diff --git a/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_db.ipynb b/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_db.ipynb deleted file mode 100644 index 4797ada9c..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_db.ipynb +++ /dev/null @@ -1,328 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "4f12a9eb-6580-4575-a6a8-4c08820fe8e0", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "

" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "#define the input & output path\n", - "inputPath='dbfs:/data/cuspatial_data/points'\n", - "outputPath='dbfs:/data/output'\n", - "\n", - "# add the shapefile(.shp & .shx)\n", - "spark.sparkContext.addFile(\"dbfs:/data/cuspatial_data/polygons/polygons.shp\")\n", - "spark.sparkContext.addFile(\"dbfs:/data/cuspatial_data/polygons/polygons.shx\")\n", - "spark.conf.set(\"spark.cuspatial.sql.udf.shapeFileName\", \"polygons.shp\")" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "741761ee-d5cf-4c43-ae73-30703d246901", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# register the UDF\n", - "spark.udf.registerJavaFunction(\"point_in_polygon\", \"com.nvidia.spark.rapids.udf.PointInPolygon\", None)\n", - "\n", - "df = spark.read.parquet(inputPath)\n", - "df = df.selectExpr('x', 'y', 'point_in_polygon(x, y) as ret')\n", - "df.write.mode(\"overwrite\").parquet(outputPath)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "592bfcde-ca6f-4b94-aac1-e3b298f25fcb", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
Input rows: 71\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
Input rows: 71\n
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "print(\"Input rows: \", df.count())" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "f1b744a4-13a3-4260-b8f0-efcbbf1c0337", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
Output rows: 71\n", - "+-------------------+--------------------+---+\n", - " x| y|ret|\n", - "+-------------------+--------------------+---+\n", - "0.48171647380517046| 1.9022922214961997| []|\n", - " 1.2591725716781235| 0.1448705855995005| []|\n", - " 0.1895259128530169| 0.5431061133894604| []|\n", - " 3.028362149164369|0.027638405909631958| []|\n", - " 1.3890664414691907| 1.5177694304735412| []|\n", - " 3.1907684812039956| 0.2621847215928189| []|\n", - " 3.7080407833612004| 0.09804238103130436| []|\n", - " 3.0706987088385853| 0.9376313558467103| []|\n", - " 2.0697434332621234| 1.1809465376402173| []|\n", - " 2.175448214220591| 1.2372448404986038| []|\n", - " 2.113652420701984| 1.2774712415624014| []|\n", - " 2.9909779614491687| 1.2420487904041893| []|\n", - " 4.07037627210835| 1.9486902798139454| []|\n", - " 4.822583857757069| 0.3234041700489503| []|\n", - " 4.849847745942472| 1.9531893897409585| []|\n", - " 4.732546857961497| 0.5659923375279095| []|\n", - " 4.529792124514895| 1.942673409259531| []|\n", - " 3.2648444465931474| 2.693039435509084| []|\n", - " 2.1807636574967466| 3.2296461832828114|[3]|\n", - " 3.7164018490892348| 2.4612194182614333| []|\n", - " 2.2006520196663066| 3.7672478678985257|[3]|\n", - " 6.291790729917634| 2.983311357415729|[1]|\n", - " 2.5104987015171574| 3.0668114607133137|[3]|\n", - " 2.3007438625108882| 3.6045900851589048|[3]|\n", - " 6.101327777646798| 2.5239201807166616|[1]|\n", - " 6.109985464455084| 2.2235950639628523|[1]|\n", - " 6.4274219368674315| 2.9754616970668213|[1]|\n", - " 7.886010001346151| 3.538128217886674| []|\n", - " 7.5085184104988| 3.623862886287816| []|\n", - " 7.430677191305505| 3.380489849365283| []|\n", - " 1.7015273093278767| 7.478882372510933| []|\n", - " 7.769497359206111| 3.253257011908445| []|\n", - " 3.86008672302403| 7.513564222799629| []|\n", - " 0.059011873032214| 5.823535317960799| []|\n", - " 3.154282922203257| 5.788316610960881| []|\n", - " 2.4264509160270813| 5.188939408363776|[0]|\n", - " 1.9804558865545805| 1.3472225743317712| []|\n", - " 0.8178039499335275| 0.8138440641113271| []|\n", - " 0.2536015260915061| 1.8762161698642947| []|\n", - " 3.710910700915217| 0.9937713340192049| []|\n", - " 3.918090468102582| 0.3338651960183463| []|\n", - " 3.572744183805594| 0.33184908855075124| []|\n", - " 3.70669993057843| 0.7485845679979923| []|\n", - " 3.3588457228653024| 0.2346381514128677| []|\n", - " 2.520755151373394| 1.902015274420646| []|\n", - " 2.5322042870739683| 1.419555755682142| []|\n", - " 2.4613232527836137| 1.0484414482621331| []|\n", - " 4.975578758530645| 0.9606291981013242| []|\n", - " 4.5584381091040616| 1.8996548860019926| []|\n", - " 4.300706849071861|0.021365525588281198| []|\n", - " 3.01954722322135| 2.57810040095543| []|\n", - " 3.7622247877537456| 2.8709552313924487| []|\n", - " 4.75489831780737| 0.7800065259479418| []|\n", - " 2.566986568683904| 3.6607732238530897|[3]|\n", - " 3.7002781846945347| 2.3345952955903906| []|\n", - " 2.493975723955388| 3.3999020934055837|[3]|\n", - " 2.8222482218882474| 3.8159308233351266|[3]|\n", - " 6.0821276168848994| 2.5470532680258002|[1]|\n", - " 2.241538022180476| 3.8812819070357545|[3]|\n", - " 6.325158445513714| 2.8765450351723674|[1]|\n", - " 6.444584786789386| 2.174562817047202|[1]|\n", - " 6.6793884701899| 2.5605928243991434|[1]|\n", - " 7.250745898479374| 3.4154469467473447| []|\n", - " 7.079453687660189| 3.063690547962938|[1]|\n", - " 7.897735998643542| 3.380784914178574| []|\n", - " 2.2065031771469| 6.896038613284851| []|\n", - " 1.8703303641352362| 4.209727933188015|[3]|\n", - " 2.7456295127617385| 7.474216636277054| []|\n", - " 1.9143371250907073| 6.885401350515916| []|\n", - " 3.7176098065039747| 6.194330707468438| []|\n", - " 3.1162712022943757| 6.789029097334483| []|\n", - "+-------------------+--------------------+---+\n", - "\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
Output rows: 71\n+-------------------+--------------------+---+\n| x| y|ret|\n+-------------------+--------------------+---+\n|0.48171647380517046| 1.9022922214961997| []|\n| 1.2591725716781235| 0.1448705855995005| []|\n| 0.1895259128530169| 0.5431061133894604| []|\n| 3.028362149164369|0.027638405909631958| []|\n| 1.3890664414691907| 1.5177694304735412| []|\n| 3.1907684812039956| 0.2621847215928189| []|\n| 3.7080407833612004| 0.09804238103130436| []|\n| 3.0706987088385853| 0.9376313558467103| []|\n| 2.0697434332621234| 1.1809465376402173| []|\n| 2.175448214220591| 1.2372448404986038| []|\n| 2.113652420701984| 1.2774712415624014| []|\n| 2.9909779614491687| 1.2420487904041893| []|\n| 4.07037627210835| 1.9486902798139454| []|\n| 4.822583857757069| 0.3234041700489503| []|\n| 4.849847745942472| 1.9531893897409585| []|\n| 4.732546857961497| 0.5659923375279095| []|\n| 4.529792124514895| 1.942673409259531| []|\n| 3.2648444465931474| 2.693039435509084| []|\n| 2.1807636574967466| 3.2296461832828114|[3]|\n| 3.7164018490892348| 2.4612194182614333| []|\n| 2.2006520196663066| 3.7672478678985257|[3]|\n| 6.291790729917634| 2.983311357415729|[1]|\n| 2.5104987015171574| 3.0668114607133137|[3]|\n| 2.3007438625108882| 3.6045900851589048|[3]|\n| 6.101327777646798| 2.5239201807166616|[1]|\n| 6.109985464455084| 2.2235950639628523|[1]|\n| 6.4274219368674315| 2.9754616970668213|[1]|\n| 7.886010001346151| 3.538128217886674| []|\n| 7.5085184104988| 3.623862886287816| []|\n| 7.430677191305505| 3.380489849365283| []|\n| 1.7015273093278767| 7.478882372510933| []|\n| 7.769497359206111| 3.253257011908445| []|\n| 3.86008672302403| 7.513564222799629| []|\n| 0.059011873032214| 5.823535317960799| []|\n| 3.154282922203257| 5.788316610960881| []|\n| 2.4264509160270813| 5.188939408363776|[0]|\n| 1.9804558865545805| 1.3472225743317712| []|\n| 0.8178039499335275| 0.8138440641113271| []|\n| 0.2536015260915061| 1.8762161698642947| []|\n| 3.710910700915217| 0.9937713340192049| []|\n| 3.918090468102582| 0.3338651960183463| []|\n| 3.572744183805594| 0.33184908855075124| []|\n| 3.70669993057843| 0.7485845679979923| []|\n| 3.3588457228653024| 0.2346381514128677| []|\n| 2.520755151373394| 1.902015274420646| []|\n| 2.5322042870739683| 1.419555755682142| []|\n| 2.4613232527836137| 1.0484414482621331| []|\n| 4.975578758530645| 0.9606291981013242| []|\n| 4.5584381091040616| 1.8996548860019926| []|\n| 4.300706849071861|0.021365525588281198| []|\n| 3.01954722322135| 2.57810040095543| []|\n| 3.7622247877537456| 2.8709552313924487| []|\n| 4.75489831780737| 0.7800065259479418| []|\n| 2.566986568683904| 3.6607732238530897|[3]|\n| 3.7002781846945347| 2.3345952955903906| []|\n| 2.493975723955388| 3.3999020934055837|[3]|\n| 2.8222482218882474| 3.8159308233351266|[3]|\n| 6.0821276168848994| 2.5470532680258002|[1]|\n| 2.241538022180476| 3.8812819070357545|[3]|\n| 6.325158445513714| 2.8765450351723674|[1]|\n| 6.444584786789386| 2.174562817047202|[1]|\n| 6.6793884701899| 2.5605928243991434|[1]|\n| 7.250745898479374| 3.4154469467473447| []|\n| 7.079453687660189| 3.063690547962938|[1]|\n| 7.897735998643542| 3.380784914178574| []|\n| 2.2065031771469| 6.896038613284851| []|\n| 1.8703303641352362| 4.209727933188015|[3]|\n| 2.7456295127617385| 7.474216636277054| []|\n| 1.9143371250907073| 6.885401350515916| []|\n| 3.7176098065039747| 6.194330707468438| []|\n| 3.1162712022943757| 6.789029097334483| []|\n+-------------------+--------------------+---+\n\n
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# show the result\n", - "result = spark.read.parquet(outputPath)\n", - "print(\"Output rows: \", result.count())\n", - "result.show(71)" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "dashboards": [], - "language": "python", - "notebookMetadata": { - "pythonIndentUnit": 2 - }, - "notebookName": "cuspatial_sample", - "notebookOrigID": 3352849421916703, - "widgets": {} - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.2" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_standalone.ipynb b/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_standalone.ipynb deleted file mode 100644 index 7c2a13477..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/notebooks/cuspatial_sample_standalone.ipynb +++ /dev/null @@ -1,100 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "26b29706", - "metadata": {}, - "outputs": [], - "source": [ - "from pyspark.sql import SparkSession\n", - "import os\n", - "jarsPath = os.getenv(\"JARS_PATH\", \"/data/cuspatial_data/jars/rapids-4-spark_2.12-23.02.0.jar,/data/cuspatial_data/jars/spark-cuspatial-23.02.0.jar\")\n", - "spark = SparkSession.builder \\\n", - " .config(\"spark.jars\", jarsPath) \\\n", - " .config(\"spark.sql.adaptive.enabled\", \"false\") \\\n", - " .config(\"spark.executor.memory\", \"20GB\") \\\n", - " .config(\"spark.executor.cores\", \"6\") \\\n", - " .config(\"spark.plugins\", \"com.nvidia.spark.SQLPlugin\") \\\n", - " .config(\"spark.executor.resource.gpu.amount\", \"1\") \\\n", - " .getOrCreate()\n", - "# register the udf\n", - "spark.udf.registerJavaFunction(\"point_in_polygon\", \"com.nvidia.spark.rapids.udf.PointInPolygon\", None)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cce700a8", - "metadata": {}, - "outputs": [], - "source": [ - "# prepare shape files\n", - "rootPath = os.getenv(\"ROOT_PATH\", \"/data/cuspatial_data\")\n", - "spark.sparkContext.addFile(rootPath + \"/polygons/polygons.shp\")\n", - "spark.sparkContext.addFile(rootPath + \"/polygons/polygons.shx\")\n", - "\n", - "inputPath = rootPath + \"/points/\"\n", - "outputPath = rootPath + \"/output/\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cd26c441", - "metadata": {}, - "outputs": [], - "source": [ - "# set its parameters via SQL config for runtime updating\n", - "spark.conf.set(\"spark.cuspatial.sql.udf.shapeFileName\", \"polygons.shp\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6b1016ce", - "metadata": {}, - "outputs": [], - "source": [ - "# read the points data\n", - "df = spark.read.parquet(inputPath)\n", - "df = df.selectExpr('x', 'y', 'point_in_polygon(x, y) as point_in_polygon')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "09d5e22e", - "metadata": {}, - "outputs": [], - "source": [ - "import time\n", - "begin = time.time()\n", - "df.write.mode(\"overwrite\").parquet(outputPath)\n", - "end = time.time()\n", - "print(\"==> It took {} s\".format(round(end-begin, 2)))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.12" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/notebooks/spacial-cpu-apache-sedona_db.ipynb b/examples/UDF-Examples/Spark-cuSpatial/notebooks/spacial-cpu-apache-sedona_db.ipynb deleted file mode 100644 index 47cf5e872..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/notebooks/spacial-cpu-apache-sedona_db.ipynb +++ /dev/null @@ -1,364 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "61a74001-716b-4411-aecb-77d07058d200", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
Requirement already satisfied: geopandas in /databricks/python3/lib/python3.8/site-packages (0.11.0)\n", - "Requirement already satisfied: pyproj>=2.6.1.post1 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (3.3.1)\n", - "Requirement already satisfied: shapely<2,>=1.7 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.8.2)\n", - "Requirement already satisfied: pandas>=1.0.0 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.2.4)\n", - "Requirement already satisfied: packaging in /databricks/python3/lib/python3.8/site-packages (from geopandas) (20.9)\n", - "Requirement already satisfied: fiona>=1.8 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.8.21)\n", - "Requirement already satisfied: six>=1.7 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (1.15.0)\n", - "Requirement already satisfied: setuptools in /usr/local/lib/python3.8/dist-packages (from fiona>=1.8->geopandas) (52.0.0)\n", - "Requirement already satisfied: click>=4.0 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (8.1.3)\n", - "Requirement already satisfied: certifi in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (2020.12.5)\n", - "Requirement already satisfied: munch in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (2.5.0)\n", - "Requirement already satisfied: cligj>=0.5 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (0.7.2)\n", - "Requirement already satisfied: click-plugins>=1.0 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (1.1.1)\n", - "Requirement already satisfied: attrs>=17 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (20.3.0)\n", - "Requirement already satisfied: pytz>=2017.3 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (2020.5)\n", - "Requirement already satisfied: numpy>=1.16.5 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (1.20.1)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (2.8.1)\n", - "Requirement already satisfied: pyparsing>=2.0.2 in /databricks/python3/lib/python3.8/site-packages (from packaging->geopandas) (2.4.7)\n", - "WARNING: You are using pip version 21.0.1; however, version 22.1.2 is available.\n", - "You should consider upgrading via the '/databricks/python3/bin/python -m pip install --upgrade pip' command.\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
Requirement already satisfied: geopandas in /databricks/python3/lib/python3.8/site-packages (0.11.0)\nRequirement already satisfied: pyproj>=2.6.1.post1 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (3.3.1)\nRequirement already satisfied: shapely<2,>=1.7 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.8.2)\nRequirement already satisfied: pandas>=1.0.0 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.2.4)\nRequirement already satisfied: packaging in /databricks/python3/lib/python3.8/site-packages (from geopandas) (20.9)\nRequirement already satisfied: fiona>=1.8 in /databricks/python3/lib/python3.8/site-packages (from geopandas) (1.8.21)\nRequirement already satisfied: six>=1.7 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (1.15.0)\nRequirement already satisfied: setuptools in /usr/local/lib/python3.8/dist-packages (from fiona>=1.8->geopandas) (52.0.0)\nRequirement already satisfied: click>=4.0 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (8.1.3)\nRequirement already satisfied: certifi in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (2020.12.5)\nRequirement already satisfied: munch in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (2.5.0)\nRequirement already satisfied: cligj>=0.5 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (0.7.2)\nRequirement already satisfied: click-plugins>=1.0 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (1.1.1)\nRequirement already satisfied: attrs>=17 in /databricks/python3/lib/python3.8/site-packages (from fiona>=1.8->geopandas) (20.3.0)\nRequirement already satisfied: pytz>=2017.3 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (2020.5)\nRequirement already satisfied: numpy>=1.16.5 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (1.20.1)\nRequirement already satisfied: python-dateutil>=2.7.3 in /databricks/python3/lib/python3.8/site-packages (from pandas>=1.0.0->geopandas) (2.8.1)\nRequirement already satisfied: pyparsing>=2.0.2 in /databricks/python3/lib/python3.8/site-packages (from packaging->geopandas) (2.4.7)\nWARNING: You are using pip version 21.0.1; however, version 22.1.2 is available.\nYou should consider upgrading via the '/databricks/python3/bin/python -m pip install --upgrade pip' command.\n
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "%sh \n", - "pip install geopandas" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "4fd97bf3-dc08-495f-9cfe-e9e551f40e16", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "import os\n", - "import geopandas as gpd\n", - "from pyspark.sql.functions import col, expr, when\n", - "from sedona.register import SedonaRegistrator\n", - "from sedona.utils import SedonaKryoRegistrator, KryoSerializer" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "6b15de34-d411-457b-89fb-7232587ae949", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
/databricks/spark/python/pyspark/sql/pandas/conversion.py:340: UserWarning: createDataFrame attempted Arrow optimization because 'spark.sql.execution.arrow.pyspark.enabled' is set to true; however, failed by the reason below:\n", - " Did not pass numpy.dtype object\n", - "Attempting non-optimization as 'spark.sql.execution.arrow.pyspark.fallback.enabled' is set to true.\n", - " warnings.warn(msg)\n", - "Out[9]: 4
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
/databricks/spark/python/pyspark/sql/pandas/conversion.py:340: UserWarning: createDataFrame attempted Arrow optimization because 'spark.sql.execution.arrow.pyspark.enabled' is set to true; however, failed by the reason below:\n Did not pass numpy.dtype object\nAttempting non-optimization as 'spark.sql.execution.arrow.pyspark.fallback.enabled' is set to true.\n warnings.warn(msg)\nOut[9]: 4
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# read the shapefile\n", - "polygons = gpd.read_file(\"/dbfs/data/cuspatial_data/polygons/polygons.shp\")\n", - "polygons_df = spark.createDataFrame(\n", - " polygons\n", - ")\n", - "polygons_df.createOrReplaceTempView(\"polygons\")\n", - "polygons_df.count()" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "3a4d1a80-72e4-490d-8152-f6f231cac37f", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
+--------------------+\n", - " mypoint|\n", - "+--------------------+\n", - "POINT (0.48171647...|\n", - "POINT (1.25917257...|\n", - "POINT (0.18952591...|\n", - "POINT (3.02836214...|\n", - "POINT (1.38906644...|\n", - "+--------------------+\n", - "only showing top 5 rows\n", - "\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
+--------------------+\n| mypoint|\n+--------------------+\n|POINT (0.48171647...|\n|POINT (1.25917257...|\n|POINT (0.18952591...|\n|POINT (3.02836214...|\n|POINT (1.38906644...|\n+--------------------+\nonly showing top 5 rows\n\n
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "point_parquet_df = spark.read.format(\"parquet\").\\\n", - " load(\"dbfs:/data/cuspatial_data/points\")\n", - "\n", - "point_parquet_df.createOrReplaceTempView(\"pointtable\")\n", - "point_df = spark.sql(\"select ST_Point(x, y) as mypoint from pointtable\")\n", - "point_df.show(5)" - ] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "application/vnd.databricks.v1+cell": { - "inputWidgets": {}, - "nuid": "8ec977f5-937e-45ce-89d6-46fa3b48cc39", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
+--------------------+------------------+------------------+\n", - " geometry| x| y|\n", - "+--------------------+------------------+------------------+\n", - "POLYGON ((2.08811...|2.1807636574967466|3.2296461832828114|\n", - "POLYGON ((2.08811...|2.2006520196663066|3.7672478678985257|\n", - "POLYGON ((2.08811...|2.5104987015171574|3.0668114607133137|\n", - "POLYGON ((2.08811...|2.3007438625108882|3.6045900851589048|\n", - "POLYGON ((2.08811...| 2.566986568683904|3.6607732238530897|\n", - "POLYGON ((2.08811...| 2.493975723955388|3.3999020934055837|\n", - "POLYGON ((2.08811...|2.8222482218882474|3.8159308233351266|\n", - "POLYGON ((2.08811...| 2.241538022180476|3.8812819070357545|\n", - "POLYGON ((2.08811...|1.8703303641352362| 4.209727933188015|\n", - "POLYGON ((2.48845...|2.4264509160270813| 5.188939408363776|\n", - "POLYGON ((5.03982...| 6.291790729917634| 2.983311357415729|\n", - "POLYGON ((5.03982...| 6.101327777646798|2.5239201807166616|\n", - "POLYGON ((5.03982...| 6.109985464455084|2.2235950639628523|\n", - "POLYGON ((5.03982...|6.4274219368674315|2.9754616970668213|\n", - "POLYGON ((5.03982...|6.0821276168848994|2.5470532680258002|\n", - "POLYGON ((5.03982...| 6.325158445513714|2.8765450351723674|\n", - "POLYGON ((5.03982...| 6.444584786789386| 2.174562817047202|\n", - "POLYGON ((5.03982...| 6.6793884701899|2.5605928243991434|\n", - "POLYGON ((5.03982...| 7.079453687660189| 3.063690547962938|\n", - "+--------------------+------------------+------------------+\n", - "\n", - "
" - ] - }, - "metadata": { - "application/vnd.databricks.v1+output": { - "addedWidgets": {}, - "arguments": {}, - "data": "
+--------------------+------------------+------------------+\n| geometry| x| y|\n+--------------------+------------------+------------------+\n|POLYGON ((2.08811...|2.1807636574967466|3.2296461832828114|\n|POLYGON ((2.08811...|2.2006520196663066|3.7672478678985257|\n|POLYGON ((2.08811...|2.5104987015171574|3.0668114607133137|\n|POLYGON ((2.08811...|2.3007438625108882|3.6045900851589048|\n|POLYGON ((2.08811...| 2.566986568683904|3.6607732238530897|\n|POLYGON ((2.08811...| 2.493975723955388|3.3999020934055837|\n|POLYGON ((2.08811...|2.8222482218882474|3.8159308233351266|\n|POLYGON ((2.08811...| 2.241538022180476|3.8812819070357545|\n|POLYGON ((2.08811...|1.8703303641352362| 4.209727933188015|\n|POLYGON ((2.48845...|2.4264509160270813| 5.188939408363776|\n|POLYGON ((5.03982...| 6.291790729917634| 2.983311357415729|\n|POLYGON ((5.03982...| 6.101327777646798|2.5239201807166616|\n|POLYGON ((5.03982...| 6.109985464455084|2.2235950639628523|\n|POLYGON ((5.03982...|6.4274219368674315|2.9754616970668213|\n|POLYGON ((5.03982...|6.0821276168848994|2.5470532680258002|\n|POLYGON ((5.03982...| 6.325158445513714|2.8765450351723674|\n|POLYGON ((5.03982...| 6.444584786789386| 2.174562817047202|\n|POLYGON ((5.03982...| 6.6793884701899|2.5605928243991434|\n|POLYGON ((5.03982...| 7.079453687660189| 3.063690547962938|\n+--------------------+------------------+------------------+\n\n
", - "datasetInfos": [], - "metadata": {}, - "removedWidgets": [], - "type": "html" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "result = spark.sql(\"\\\n", - "SELECT polygons.*, pointtable.* FROM polygons ,pointtable \\\n", - "WHERE ST_Contains(polygons.geometry, ST_Point(pointtable.x, pointtable.y)) \\\n", - "\")\n", - "result.show()" - ] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "dashboards": [], - "language": "python", - "notebookMetadata": { - "pythonIndentUnit": 2 - }, - "notebookName": "spacial-cpu-apache-sedona", - "notebookOrigID": 1618423020047086, - "widgets": {} - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.2" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/pom.xml b/examples/UDF-Examples/Spark-cuSpatial/pom.xml deleted file mode 100644 index 17bc2c205..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/pom.xml +++ /dev/null @@ -1,140 +0,0 @@ - - - - 4.0.0 - - com.nvidia - spark-cuspatial - UDF of the cuSpatial case for the RAPIDS Accelerator - The RAPIDS accelerated user defined function of the cuSpatial case - for use with the RAPIDS Accelerator for Apache Spark - 23.02.0-SNAPSHOT - - - 1.8 - 1.8 - 8 - - 23.02.0 - 2.12 - 3.2.0 - ${project.build.directory}/cpp-build - - 10 - - - - - com.nvidia - rapids-4-spark_${scala.binary.version} - ${rapids.version} - provided - - - org.apache.spark - spark-sql_${scala.binary.version} - ${spark.version} - provided - - - - - - - ${project.build.directory}/native-deps/ - - - - - maven-antrun-plugin - 3.0.0 - - - cmake - validate - - - - - - - - - - - - - - - - - run - - - - - - maven-resources-plugin - 3.2.0 - - - copy-native-libs - validate - - copy-resources - - - true - ${project.build.directory}/native-deps/${os.arch}/${os.name} - - - ${udf.native.build.path} - - libspatialudfjni.so - - - - - - - - - - - - - assembly-udf-jar - - - - maven-assembly-plugin - - - jar-with-dependencies - - - - - - - - diff --git a/examples/UDF-Examples/Spark-cuSpatial/spatial_join.py b/examples/UDF-Examples/Spark-cuSpatial/spatial_join.py deleted file mode 100644 index a36a0b865..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/spatial_join.py +++ /dev/null @@ -1,47 +0,0 @@ -# -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import sys -import time -from pyspark.sql import SparkSession - - -if __name__ == '__main__': - if len(sys.argv) < 2: - raise Exception("Requires a data path.") - inputPath = sys.argv[1] - outputPath = sys.argv[2] - - # You should set correct shapefile name by "--conf spark.cuspatial.sql.udf.shapeFileName" - spark = SparkSession.builder.getOrCreate() - # register the udf and set its parameters via the runtime config - spark.udf.registerJavaFunction("point_in_polygon", "com.nvidia.spark.rapids.udf.PointInPolygon", None) - - # read the points data - df = spark.read.parquet(inputPath) - # null row is not supported yet by the UDF, filter out them first. - df = df.filter("x is not NULL and y is not NULL") - - # test func start - df = df.selectExpr('x', 'y', 'point_in_polygon(x, y) as point_in_polygon') - # test func end - - # trigger the test - begin = time.time() - df.write.mode("overwrite").parquet(outputPath) - end = time.time() - print("==> It took {} s".format(round(end-begin, 2))) - spark.stop() diff --git a/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/PointInPolygon.java b/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/PointInPolygon.java deleted file mode 100644 index 9ae2a4b97..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/PointInPolygon.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2022, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.nvidia.spark.rapids.udf; - -import ai.rapids.cudf.ColumnVector; -import com.nvidia.spark.RapidsUDF; -import org.apache.spark.SparkFiles; -import org.apache.spark.sql.api.java.UDF2; -import org.apache.spark.sql.internal.SQLConf; - -import java.io.File; -import java.util.List; - -/** - * A Spark Java UDF that computes what the `spatial_join` test does here. - * https://github.com/zhangjianting/cuspatial_benchmark_nyctaxi/blob/main/python/spatial_join.py - */ -public class PointInPolygon implements UDF2>, RapidsUDF { - - private String shapeFile; - private boolean localPathParsed; - - public PointInPolygon() {} - - public PointInPolygon(String shapeFileName) { - this.shapeFile = shapeFileName; - } - - /** Row-by-row implementation that executes on the CPU */ - @Override - public List call(Double x, Double y) { - // not supported yet - throw new UnsupportedOperationException(); - } - - // Share the polygon columns across UDF instances, since each task will create a UDF. - private final static ColumnVector[] polygons = new ColumnVector[4]; - private static int refCount; - - private void ensureShapeFile() { - // Read the config from SQLConf to support runtime updating - String newShapeName = SQLConf.get().getConfString("spark.cuspatial.sql.udf.shapeFileName", null); - boolean validNewName = newShapeName != null && !newShapeName.equals(shapeFile); - // Each task has a different UDF instance so no need to sync when operating object members. - if (!localPathParsed || validNewName) { - if (validNewName) { - // update to the latest - shapeFile = newShapeName; - } - if (shapeFile == null || shapeFile.isEmpty()) { - throw new RuntimeException("Shape file name is missing"); - } - // Get the local path of the downloaded file on each work node. - shapeFile = SparkFiles.get(new File(shapeFile).getName()); - localPathParsed = true; - } - - // load the shape data when needed - synchronized (polygons) { - if (refCount == 0) { - long[] ret = readPolygon(shapeFile); - try { - assert ret.length == polygons.length; - // Table is not applicable here because the columns may have different row numbers. - // So need to cache it as an array. - for (int i = 0; i < polygons.length; i++) { - polygons[i] = new ColumnVector(ret[i]); - } - } catch (Throwable t) { - for (int i = 0; i < polygons.length; i++) { - if (polygons[i] != null) { - polygons[i].close(); - polygons[i] = null; - } else if (ret[i] != 0){ - deleteCudfColumn(ret[i]); - } - } - throw t; - } - } // end of 'if' - // "refCount < 0" can not happen because this method is private. - // the order of increasing/decreasing the reference is managed internally. - refCount ++; - } - } - - private void releaseShapeData() { - synchronized (polygons) { - refCount --; - if (refCount == 0) { - for (int i = 0; i < polygons.length; i++) { - if (polygons[i] != null) { - polygons[i].close(); - polygons[i] = null; - } - } - } - // "refCount < 0" can not happen because this method is private. - // the order of increasing/decreasing the reference is managed internally. - } - } - - /** Columnar implementation that processes data on the GPU */ - @Override - public ColumnVector evaluateColumnar(int numRows, ColumnVector... args) { - if (args.length != 2) { - throw new IllegalArgumentException("Unexpected argument count: " + args.length + - ", expects 2 for (x, y)"); - } - - // Load the native code if it has not been already loaded. This is done here - // rather than in a static code block because the driver may not have the - // required CUDA environment. - UDFNativeLoader.ensureLoaded(); - ensureShapeFile(); - - try { - return new ColumnVector(pointInPolygon(args[0].getNativeView(), args[1].getNativeView(), - polygons[0].getNativeView(), polygons[1].getNativeView(), - polygons[2].getNativeView(), polygons[3].getNativeView())); - } finally { - // Now try to open/close the shape file per call. This can avoid the duplicate readings - // when multiple tasks in the same executors run in parallel. But each batch in the - // same task still executes a new reading. - // A better solution is to try to open/close the shape file per task, then it can also - // avoid duplicate readings per batch in the same task. - // - // All of this is to figure out a proper time to close the columns of the shape data. - releaseShapeData(); - } - } - - private static native void deleteCudfColumn(long cudfColumnHandle); - - /** - * read the polygon shape file as array of 4 columns representing one or more polygons: - * [0]-INT32: beginning index of the first ring in each polygon - * [1]-INT32: beginning index of the first point in each ring - * [2]-FLOAT64: x component of polygon points - * [3]-FLOAT64: y component of polygon points - */ - private static native long[] readPolygon(String shapeFile); - - /** Native implementation that computes on the GPU */ - private static native long pointInPolygon(long xColView, long yColView, - long plyFPosView, long plyRPosView, - long plyXView, long plyYView); -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/UDFNativeLoader.java b/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/UDFNativeLoader.java deleted file mode 100644 index e3c8fa8aa..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/src/main/java/com/nvidia/spark/rapids/udf/UDFNativeLoader.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2022, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.nvidia.spark.rapids.udf; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URL; - -/** Loads the native dependencies for UDFs with a native implementation */ -public class UDFNativeLoader { - private static final ClassLoader loader = UDFNativeLoader.class.getClassLoader(); - private static boolean isLoaded; - - /** Loads native UDF code if necessary */ - public static synchronized void ensureLoaded() { - if (!isLoaded) { - try { - String os = System.getProperty("os.name"); - String arch = System.getProperty("os.arch"); - File path = createFile(os, arch, "spatialudfjni"); - System.load(path.getAbsolutePath()); - isLoaded = true; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - /** Extract the contents of a library resource into a temporary file */ - private static File createFile(String os, String arch, String baseName) throws IOException { - String path = arch + "/" + os + "/" + System.mapLibraryName(baseName); - File loc; - URL resource = loader.getResource(path); - if (resource == null) { - throw new FileNotFoundException("Could not locate native dependency " + path); - } - try (InputStream in = resource.openStream()) { - loc = File.createTempFile(baseName, ".so"); - loc.deleteOnExit(); - try (OutputStream out = new FileOutputStream(loc)) { - byte[] buffer = new byte[1024 * 16]; - int read = 0; - while ((read = in.read(buffer)) >= 0) { - out.write(buffer, 0, read); - } - } - } - return loc; - } -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/src/main/native/CMakeLists.txt b/examples/UDF-Examples/Spark-cuSpatial/src/main/native/CMakeLists.txt deleted file mode 100755 index 4cf897378..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/src/main/native/CMakeLists.txt +++ /dev/null @@ -1,115 +0,0 @@ -#============================================================================= -# Copyright (c) 2022, NVIDIA CORPORATION. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#============================================================================= - -cmake_minimum_required(VERSION 3.20.1 FATAL_ERROR) - -project(SPATIALUDJNI VERSION 23.02.0 LANGUAGES C CXX CUDA) - -################################################################################################### -# - build type ------------------------------------------------------------------------------------ - -# Set a default build type if none was specified -set(DEFAULT_BUILD_TYPE "Release") - -################################################################################################### -# - compiler options ------------------------------------------------------------------------------ - -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_COMPILER $ENV{CXX}) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=deprecated-declarations") -endif(CMAKE_COMPILER_IS_GNUCXX) - -#################################################################################################### -# - find cuda toolkit ------------------------------------------------------------------------------ -find_package(CUDAToolkit REQUIRED) - -#################################################################################################### -# - find cudf -------------------------------------------------------------------------------------- - -find_path( - CUDF_INCLUDE "cudf" - HINTS "$ENV{CONDA_PREFIX}/include" - "${CONDA_PREFIX}/include" - "$ENV{CUDF_ROOT}/include" - "${CUDF_ROOT}/include" - REQUIRED) - -find_library( - CUDF_LIB "cudf" - HINTS "$ENV{CONDA_PREFIX}/lib" - "${CONDA_PREFIX}/lib" - "$ENV{CUDF_ROOT}/lib" - "${CUDF_ROOT}/lib" - REQUIRED) - -set(CUDACXX_INCLUDE "$ENV{CONDA_PREFIX}/include/rapids/libcudacxx") - -#################################################################################################### -# - find cuspatial -------------------------------------------------------------------------------------- - -find_path( - CUSPATIAL_INCLUDE "cuspatial" - HINTS "$ENV{CONDA_PREFIX}/include" - "${CONDA_PREFIX}/include" - "$ENV{CUSPATIAL_ROOT}/include" - "${CUSPATIAL_ROOT}/include" - REQUIRED) - -find_library( - CUSPATIAL_LIB "cuspatial" - HINTS "$ENV{CONDA_PREFIX}/lib" - "${CONDA_PREFIX}/lib" - "$ENV{CUSPATIAL_ROOT}/lib" - "${CUSPATIAL_ROOT}/lib" - REQUIRED) - -################################################################################################### -# - find JNI ------------------------------------------------------------------------------------- - -find_package(JNI REQUIRED) -if(JNI_FOUND) - message(STATUS "JDK with JNI in ${JNI_INCLUDE_DIRS}") -else() - message(FATAL_ERROR "JDK with JNI not found, please check your environment") -endif(JNI_FOUND) - -################################################################################################### -# - library targets ------------------------------------------------------------------------------- - -add_library(spatialudfjni SHARED "src/PointInPolygonJni.cpp") - -# Override RPATH -set_target_properties(spatialudfjni PROPERTIES BUILD_RPATH "\$ORIGIN") - -# include directories -target_include_directories( - spatialudfjni - PUBLIC "${JNI_INCLUDE_DIRS}" - "${CUDF_INCLUDE}" - "${CUDACXX_INCLUDE}" - "${CUDAToolkit_INCLUDE_DIRS}" - "${CUSPATIAL_INCLUDE}") - -################################################################################################### -# - link libraries -------------------------------------------------------------------------------- - -target_link_libraries(spatialudfjni ${CUDF_LIB} ${CUSPATIAL_LIB}) diff --git a/examples/UDF-Examples/Spark-cuSpatial/src/main/native/src/PointInPolygonJni.cpp b/examples/UDF-Examples/Spark-cuSpatial/src/main/native/src/PointInPolygonJni.cpp deleted file mode 100644 index ecbc0b6b2..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/src/main/native/src/PointInPolygonJni.cpp +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright (c) 2022, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace { - -constexpr char const* RUNTIME_ERROR_CLASS = "java/lang/RuntimeException"; -constexpr char const* ILLEGAL_ARG_CLASS = "java/lang/IllegalArgumentException"; - -/** - * @brief Throw a Java exception - * - * @param env The Java environment - * @param class_name The fully qualified Java class name of the exception - * @param msg The message string to associate with the exception - */ -void throw_java_exception(JNIEnv* env, char const* class_name, char const* msg) { - jclass ex_class = env->FindClass(class_name); - if (ex_class != NULL) { - env->ThrowNew(ex_class, msg); - } -} - -/** - * @brief check if an java exceptions have been thrown and if so throw a C++ - * exception so the flow control stop processing. - */ -inline void check_java_exception(JNIEnv *const env) { - if (env->ExceptionCheck()) { - // Not going to try to get the message out of the Exception, too complex and - // might fail. - throw std::runtime_error("JNI Exception..."); - } -} - -/** @brief RAII for jstring to be sure it is handled correctly. */ -class native_jstring { -private: - JNIEnv *env; - jstring orig; - mutable const char *cstr; - mutable size_t cstr_length; - - void init_cstr() const { - if (orig != NULL && cstr == NULL) { - cstr_length = env->GetStringUTFLength(orig); - cstr = env->GetStringUTFChars(orig, 0); - check_java_exception(env); - } - } - -public: - native_jstring(native_jstring const &) = delete; - native_jstring &operator=(native_jstring const &) = delete; - - native_jstring(native_jstring &&other) noexcept - : env(other.env), orig(other.orig), cstr(other.cstr), cstr_length(other.cstr_length) { - other.cstr = NULL; - } - - native_jstring(JNIEnv *const env, jstring orig) - : env(env), orig(orig), cstr(NULL), cstr_length(0) {} - - native_jstring &operator=(native_jstring const &&other) { - if (orig != NULL && cstr != NULL) { - env->ReleaseStringUTFChars(orig, cstr); - } - this->env = other.env; - this->orig = other.orig; - this->cstr = other.cstr; - this->cstr_length = other.cstr_length; - other.cstr = NULL; - return *this; - } - - bool is_null() const noexcept { return orig == NULL; } - - const char *get() const { - init_cstr(); - return cstr; - } - - ~native_jstring() { - if (orig != NULL && cstr != NULL) { - env->ReleaseStringUTFChars(orig, cstr); - } - } -}; - -/** - * @brief a column is valid only when it has at least one valid row. - */ -inline bool is_invalid_column(cudf::column_view const& col) { - return col.null_count() == col.size(); -} - -/** - * @brief run the reduction 'agg' on the input column 'col'. The input column should be - * double type, and have at least one valid row. Otherwise, the behavior is undefined. - */ -inline double reduce_as_double(cudf::column_view const& col, - cudf::reduce_aggregation const& agg) { - auto s = cudf::reduce(col, agg, col.type()); - // s is always valid - auto p_num_scalar = reinterpret_cast*>(s.get()); - return p_num_scalar->value(); -} - -/** - * @brief convert the cuspatial result for the 'point_in_polygon' test, - * to match the simple UDF output requirement. - * - * (It is called only once so it can be inline.) - */ -inline jlong convert_point_in_polygon_result(std::unique_ptr pt_indices, - std::unique_ptr ply_indices, - cudf::column_view const& raw_xv, - cudf::column_view const& raw_yv) { - // Sort result by (point_offset, polygon_offset) pair, to make the output deterministic. - // The sorted polygon index column can be used for the output LIST child column. - auto sorted_table_ptr = cudf::sort(cudf::table_view({ - pt_indices->get_column(0), - *ply_indices})); - // release the GPU resources once they are no longer needed. - pt_indices.reset(); - ply_indices.reset(); - - // Compute the offsets of the output by running the lower_bound with a sequence starting from 0. - auto raw_pt_indices = cudf::sequence(raw_xv.size() + 1, cudf::numeric_scalar(0)); - auto offset_col = cudf::lower_bound( - cudf::table_view({sorted_table_ptr->get_column(0)}), - cudf::table_view({*raw_pt_indices}), - {}, {}); - raw_pt_indices.reset(); - - // Cast the child column from UINT32 to INT32 (int32 should be enough) for output - auto child_col = cudf::cast(sorted_table_ptr->get_column(1), cudf::data_type(cudf::type_id::INT32)); - // release the GPU resources once they are no longer needed. - sorted_table_ptr.reset(); - - // Compute the validity mask of the output by 'bitwise-AND'ing the two input point coordinate - // column validity masks together. - auto [new_mask, new_null_count] = cudf::bitmask_and(cudf::table_view({raw_xv, raw_yv})); - - // Now all elements are ready, create the final list column and return it. - auto output_list = cudf::make_lists_column( - raw_xv.size(), - std::move(offset_col), - std::move(child_col), - new_null_count, - std::move(new_mask)); - return reinterpret_cast(output_list.release()); -} - -static jlongArray convert_cols_for_return(JNIEnv *env, - std::vector>& ret) { - int cols_num = ret.size(); - jlongArray j_out_handles = env->NewLongArray(cols_num); - jlong* out_handles = env->GetLongArrayElements(j_out_handles, NULL); - check_java_exception(env); - if (j_out_handles == nullptr || out_handles == nullptr) { - throw std::bad_alloc(); - } - for (int i = 0; i < cols_num; i++) { - out_handles[i] = reinterpret_cast(ret[i].release()); - } - env->ReleaseLongArrayElements(j_out_handles, out_handles, 0); - return j_out_handles; -} - -} // anonymous namespace - -extern "C" { - -JNIEXPORT void JNICALL -Java_com_nvidia_spark_rapids_udf_PointInPolygon_deleteCudfColumn(JNIEnv* env, jclass, - jlong j_handle) { - delete reinterpret_cast(j_handle); -} - -JNIEXPORT jlongArray JNICALL -Java_com_nvidia_spark_rapids_udf_PointInPolygon_readPolygon(JNIEnv* env, jclass, - jstring j_shape_file) { - // turn the Java string to the native string. - // The file is always valid, which is ensured by Java. - native_jstring shape_file(env, j_shape_file); - auto poly_cols = cuspatial::read_polygon_shapefile(shape_file.get()); - return convert_cols_for_return(env, poly_cols); -} - -/** - * @brief The native implementation of PointInPolygon.pointInPolygon. - * - * @param env The Java environment - * @param j_x_view The address of the cudf column view of the x column - * @param j_y_view The address of the cudf column view of the y column - * @param j_ply_fpos The column address of beginning index of the first ring in each polygon - * @param j_ply_rpos The column address of beginning index of the first point in each ring - * @param j_ply_x The column address of x component of polygon points - * @param j_ply_y The column address of y component of polygon points - * @return The address of the cudf column containing the results - */ -JNIEXPORT jlong JNICALL -Java_com_nvidia_spark_rapids_udf_PointInPolygon_pointInPolygon(JNIEnv* env, jclass, - jlong j_x_view, jlong j_y_view, - jlong j_ply_fpos, jlong j_ply_rpos, - jlong j_ply_x, jlong j_ply_y) { - // Use a try block to translate C++ exceptions into Java exceptions to avoid - // crashing the JVM if a C++ exception occurs. - try { - // turn the addresses into column_view pointers - auto raw_xv = reinterpret_cast(j_x_view); - auto raw_yv = reinterpret_cast(j_y_view); - if (raw_xv->type().id() != raw_yv->type().id()) { - throw_java_exception(env, ILLEGAL_ARG_CLASS, "x and y have different types"); - return 0; - } - - // The python test casts the data to numpy.float32, but here cudf FLOAT32 does not work. - // It complains the error - // " quadtree_point_in_polygon.cu:275: points and polygons must have the same data type" - // - // so convert int32 to cudf FLOAT64 and it works. - auto xv = cudf::cast(*raw_xv, cudf::data_type(cudf::type_id::FLOAT64)); - auto yv = cudf::cast(*raw_yv, cudf::data_type(cudf::type_id::FLOAT64)); - - // check shape data - auto ply_fpos = reinterpret_cast(j_ply_fpos); - auto ply_rpos = reinterpret_cast(j_ply_rpos); - auto ply_x = reinterpret_cast(j_ply_x); - auto ply_y = reinterpret_cast(j_ply_y); - - if (is_invalid_column(*ply_x) || is_invalid_column(*ply_y)) { - // No polygon data, then return a list column of all nulls. - // The offsets are all 0, and the child is an empty column. - auto offset_col = cudf::make_column_from_scalar(cudf::numeric_scalar(0), - xv->size() + 1); - auto nulls_list = cudf::make_lists_column( - xv->size(), - std::move(offset_col), - cudf::make_empty_column(cudf::type_id::INT32), - xv->size(), - cudf::create_null_mask(xv->size(), cudf::mask_state::ALL_NULL)); - return reinterpret_cast(nulls_list.release()); - } - - auto min_agg = cudf::make_min_aggregation(); - auto max_agg = cudf::make_max_aggregation(); - auto x_min = reduce_as_double(*ply_x, *min_agg); - auto x_max = reduce_as_double(*ply_x, *max_agg); - auto y_min = reduce_as_double(*ply_y, *min_agg); - auto y_max = reduce_as_double(*ply_y, *max_agg); - - // 2) quadtree construction - cudf::size_type min_size = 512; - int8_t num_levels = 15; - double scale = std::max(std::abs(x_max - x_min), std::abs(y_max - y_min)) / ((1 << num_levels) - 2); - - auto [point_indices, quadtree] = cuspatial::quadtree_on_points( - *xv, *yv, x_min, x_max, y_min, y_max, scale, num_levels, min_size); - - // 3) run the computation - auto poly_bboxes = cuspatial::polygon_bounding_boxes(*ply_fpos, *ply_rpos, *ply_x, *ply_y); - - auto poly_quadrant_pairs = cuspatial::join_quadtree_and_bounding_boxes( - *quadtree, *poly_bboxes, x_min, x_max, y_min, y_max, scale, num_levels); - // release the GPU resources once they are no longer needed. - poly_bboxes.reset(); - - auto point_in_polygon_pairs = cuspatial::quadtree_point_in_polygon( - *poly_quadrant_pairs, *quadtree, *point_indices, - *xv, *yv, - *ply_fpos, *ply_rpos, *ply_x, *ply_y); - // release the GPU resources once they are no longer needed. - poly_quadrant_pairs.reset(); - quadtree.reset(); - - // The result table has two columns, where each row represents a - // (polygon_offset, point_offset) pair: - // - polygon_offset - UINT32 column of polygon indices - // - point_offset - UINT32 column of point indices - auto ply_pt_offset = point_in_polygon_pairs->release(); - - // 4) convert the `point_offset` to indices of the input points - auto input_pt_indices = cudf::gather( - cudf::table_view({*point_indices}), - *(ply_pt_offset[1])); - // release the GPU resources once they are no longer needed. - point_indices.reset(); - ply_pt_offset[1].reset(); - - // 4) convert the cuspatail result and return. - return convert_point_in_polygon_result( - std::move(input_pt_indices), std::move(ply_pt_offset[0]), *xv, *yv); - - } catch (std::bad_alloc const& e) { - auto msg = std::string("Unable to allocate native memory: ") + - (e.what() == nullptr ? "" : e.what()); - throw_java_exception(env, RUNTIME_ERROR_CLASS, msg.c_str()); - - } catch (std::invalid_argument const& e) { - auto msg = e.what() == nullptr ? "" : e.what(); - throw_java_exception(env, ILLEGAL_ARG_CLASS, msg); - - } catch (std::exception const& e) { - auto msg = e.what() == nullptr ? "" : e.what(); - throw_java_exception(env, RUNTIME_ERROR_CLASS, msg); - } - return 0; -} - -} diff --git a/examples/UDF-Examples/Spark-cuSpatial/tools/convert_data.sh b/examples/UDF-Examples/Spark-cuSpatial/tools/convert_data.sh deleted file mode 100755 index bc189d21f..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/tools/convert_data.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# This script is used to convert a ".cny" points file into parquet. - -python to_parquet.py /data/cuspatial/points.cny /data/cuspatial/points/points.parquet diff --git a/examples/UDF-Examples/Spark-cuSpatial/tools/to_parquet.py b/examples/UDF-Examples/Spark-cuSpatial/tools/to_parquet.py deleted file mode 100644 index b6219fe87..000000000 --- a/examples/UDF-Examples/Spark-cuSpatial/tools/to_parquet.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import cudf -import numpy as np -import cupy -import sys - - -def read_points(path): - print('reading points file:', path) - points = np.fromfile(path, dtype=np.int32) - points = cupy.asarray(points) - points = points.reshape((len(points)// 4, 4)) - points = cudf.DataFrame(points) - points_df = cudf.DataFrame() - points_df['x'] = points[0] - points_df['y'] = points[1] - return points_df - -if __name__ == '__main__': - if len(sys.argv) < 3: - raise Exception("Usage: to_parquet .") - inputPath = sys.argv[1] - outputPath = sys.argv[2] - - points_df = read_points(inputPath) - points_df.to_parquet(outputPath) - From 13b0915be401f4efc8984742f6cce744046493af Mon Sep 17 00:00:00 2001 From: eordentlich Date: Thu, 8 Aug 2024 10:35:24 -0700 Subject: [PATCH 11/14] remove criteo DL example since dependencies (horovod, nvtabular) are not being updated (#421) Signed-off-by: Erik Ordentlich --- README.md | 3 +- .../Spark-DL/criteo_train/Dockerfile | 229 - .../Spark-DL/criteo_train/Dockerfile.conda_db | 78 - .../Spark-DL/criteo_train/README.md | 101 - .../Spark-DL/criteo_train/create-conda-env.sh | 29 - .../Spark-DL/criteo_train/criteo_keras.py | 309 - .../Spark-DL/criteo_train/environment.yml | 30 - .../notebooks/Criteo-Training.ipynb | 12675 ---------------- .../sample_data/dimensions/._SUCCESS.crc | Bin 8 -> 0 bytes ...d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv.crc | Bin 12 -> 0 bytes .../sample_data/dimensions/_SUCCESS | 0 ...e973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv | 2 - .../sample_data/test_small/._SUCCESS.crc | Bin 8 -> 0 bytes ...-a883-b21c9328bf3f-c000.snappy.parquet.crc | Bin 784 -> 0 bytes .../sample_data/test_small/_SUCCESS | 0 ...4cb1-a883-b21c9328bf3f-c000.snappy.parquet | Bin 99248 -> 0 bytes .../sample_data/train_small/._SUCCESS.crc | Bin 8 -> 0 bytes ...-9935-e969a5a05f34-c000.snappy.parquet.crc | Bin 1408 -> 0 bytes .../sample_data/train_small/_SUCCESS | 0 ...4e03-9935-e969a5a05f34-c000.snappy.parquet | Bin 178767 -> 0 bytes .../sample_data/val_small/._SUCCESS.crc | Bin 8 -> 0 bytes ...-96cc-2f5cdbaa6177-c000.snappy.parquet.crc | Bin 748 -> 0 bytes .../sample_data/val_small/_SUCCESS | 0 ...4c66-96cc-2f5cdbaa6177-c000.snappy.parquet | Bin 94528 -> 0 bytes .../Spark-DL/criteo_train/spark-env.sh | 2 - .../Spark-DL/criteo_train/start-spark.sh | 2 - .../Spark-DL/criteo_train/submit.sh | 27 - 27 files changed, 1 insertion(+), 13486 deletions(-) delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile.conda_db delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/README.md delete mode 100755 examples/ML+DL-Examples/Spark-DL/criteo_train/create-conda-env.sh delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/criteo_keras.py delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/environment.yml delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/notebooks/Criteo-Training.ipynb delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/._SUCCESS.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/.part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/_SUCCESS delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/._SUCCESS.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/.part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/_SUCCESS delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/._SUCCESS.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/.part-00000-b14c1424-bac6-4e03-9935-e969a5a05f34-c000.snappy.parquet.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/_SUCCESS delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/part-00000-b14c1424-bac6-4e03-9935-e969a5a05f34-c000.snappy.parquet delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/._SUCCESS.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/.part-00000-d22ab04e-dacf-4c66-96cc-2f5cdbaa6177-c000.snappy.parquet.crc delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/_SUCCESS delete mode 100644 examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/part-00000-d22ab04e-dacf-4c66-96cc-2f5cdbaa6177-c000.snappy.parquet delete mode 100755 examples/ML+DL-Examples/Spark-DL/criteo_train/spark-env.sh delete mode 100755 examples/ML+DL-Examples/Spark-DL/criteo_train/start-spark.sh delete mode 100755 examples/ML+DL-Examples/Spark-DL/criteo_train/submit.sh diff --git a/README.md b/README.md index 549a2230c..0a3e9c704 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,7 @@ Here is the list of notebooks in this repo: | 3 | XGBoost | Agaricus (Scala) | Uses XGBoost classifier function to create model that can accurately differentiate between edible and poisonous mushrooms with the [agaricus dataset](https://archive.ics.uci.edu/ml/datasets/mushroom) | 4 | XGBoost | Mortgage (Scala) | End-to-end ETL + XGBoost example to predict mortgage default with [Fannie Mae Single-Family Loan Performance Data](https://capitalmarkets.fanniemae.com/credit-risk-transfer/single-family-credit-risk-transfer/fannie-mae-single-family-loan-performance-data) | 5 | XGBoost | Taxi (Scala) | End-to-end ETL + XGBoost example to predict taxi trip fare amount with [NYC taxi trips data set](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) -| 6 | ML/DL | Criteo Training | ETL and deep learning training of the Criteo 1TB Click Logs dataset -| 7 | ML/DL | PCA End-to-End | Spark MLlib based PCA example to train and transform with a synthetic dataset +| 6 | ML/DL | PCA End-to-End | Spark MLlib based PCA example to train and transform with a synthetic dataset Here is the list of Apache Spark applications (Scala and PySpark) that can be built for running on GPU with RAPIDS Accelerator in this repo: diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile b/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile deleted file mode 100644 index 0e56925b1..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile +++ /dev/null @@ -1,229 +0,0 @@ -# -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -ARG IMAGE=nvcr.io/nvidia/tensorflow:21.03-tf2-py3 -FROM ${IMAGE} -ENV CUDA_SHORT_VERSION=11.2 - -SHELL ["/bin/bash", "-c"] -ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:/usr/local/lib:/repos/dist/lib - -ENV DEBIAN_FRONTEND=noninteractive - -ARG RELEASE=true -ARG RMM_VER=v21.10.00 -ARG CUDF_VER=v21.10.00 -ARG NVTAB_VER=v0.6.0 -ARG SM="60;61;70;75;80" - -ENV CUDA_HOME=/usr/local/cuda -ENV CUDA_PATH=$CUDA_HOME -ENV CUDA_CUDA_LIBRARY=${CUDA_HOME}/lib64/stubs -ENV PATH=${CUDA_HOME}/lib64/:${PATH}:${CUDA_HOME}/bin - -# Build env variables for rmm -ENV INSTALL_PREFIX=/usr - -RUN apt update -y --fix-missing && \ - apt upgrade -y && \ - apt install -y --no-install-recommends software-properties-common && \ - apt update -y --fix-missing - -RUN apt install -y --no-install-recommends \ - git \ - libboost-all-dev \ - python3.8-dev \ - build-essential \ - autoconf \ - bison \ - flex \ - libboost-filesystem-dev \ - libboost-system-dev \ - libboost-regex-dev \ - libjemalloc-dev \ - wget \ - libssl-dev \ - protobuf-compiler \ - clang-format \ - aptitude \ - numactl \ - libnuma-dev \ - libaio-dev \ - libibverbs-dev \ - libtool && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - #update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 && \ - #wget https://bootstrap.pypa.io/get-pip.py && \ - #python get-pip.py - -# Install cmake -RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ - apt-get update && \ - apt-get install -y cmake - -# Install arrow from source -ENV ARROW_HOME=/usr/local -RUN git clone --branch apache-arrow-4.0.1 --recurse-submodules https://github.com/apache/arrow.git build-env && \ - pushd build-env && \ - export PARQUET_TEST_DATA="${PWD}/cpp/submodules/parquet-testing/data" && \ - export ARROW_TEST_DATA="${PWD}/testing/data" && \ - pip install -r python/requirements-build.txt && \ - mkdir cpp/release && \ - pushd cpp/release && \ - cmake -DCMAKE_INSTALL_PREFIX=${ARROW_HOME} \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_LIBRARY_PATH=${CUDA_CUDA_LIBRARY} \ - -DARROW_FLIGHT=ON \ - -DARROW_GANDIVA=OFF \ - -DARROW_ORC=ON \ - -DARROW_WITH_BZ2=ON \ - -DARROW_WITH_ZLIB=ON \ - -DARROW_WITH_ZSTD=ON \ - -DARROW_WITH_LZ4=ON \ - -DARROW_WITH_SNAPPY=ON \ - -DARROW_WITH_BROTLI=ON \ - -DARROW_PARQUET=ON \ - -DARROW_PYTHON=ON \ - -DARROW_PLASMA=ON \ - -DARROW_BUILD_TESTS=ON \ - -DARROW_CUDA=ON \ - -DARROW_DATASET=ON \ - .. && \ - make -j$(nproc) && \ - make install && \ - popd && \ - pushd python && \ - export PYARROW_WITH_PARQUET=ON && \ - export PYARROW_WITH_CUDA=ON && \ - export PYARROW_WITH_ORC=ON && \ - export PYARROW_WITH_DATASET=ON && \ - python setup.py build_ext --build-type=release bdist_wheel && \ - pip install dist/*.whl && \ - popd && \ - popd && \ - rm -rf build-env - - -# Install rmm from source -RUN git clone https://github.com/rapidsai/rmm.git build-env && cd build-env/ && \ - if [ "$RELEASE" == "true" ] && [ ${RMM_VER} != "vnightly" ] ; then git fetch --all --tags && git checkout tags/${RMM_VER}; else git checkout main; fi; \ - sed -i '/11.2/ a "11.4": "11.x",' python/setup.py && \ - cd ..; \ - pushd build-env && \ - ./build.sh librmm && \ - pip install python/. && \ - popd && \ - rm -rf build-env - - - -# Build env for CUDF build -RUN git clone https://github.com/rapidsai/cudf.git build-env && cd build-env/ && \ - if [ "$RELEASE" == "true" ] && [ ${CUDF_VER} != "vnightly" ] ; then git fetch --all --tags && git checkout tags/${CUDF_VER}; else git checkout main; fi; \ - git submodule update --init --recursive && \ - cd .. && \ - pushd build-env && \ - export CUDF_HOME=${PWD} && \ - export CUDF_ROOT=${PWD}/cpp/build/ && \ - export CMAKE_LIBRARY_PATH=${CUDA_CUDA_LIBRARY} && \ - ./build.sh libcudf cudf dask_cudf && \ - protoc -I=python/cudf/cudf/utils/metadata --python_out=/usr/local/lib/python3.8/dist-packages/cudf/utils/metadata python/cudf/cudf/utils/metadata/orc_column_statistics.proto && \ - popd && \ - rm -rf build-env - -RUN apt-get update -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - vim gdb git wget unzip tar python3.8-dev \ - zlib1g-dev lsb-release clang-format libboost-all-dev \ - openssl curl zip\ - slapd && \ - rm -rf /var/lib/apt/lists/* - -ENV PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION='python' - - -RUN pip install pandas sklearn ortools nvtx-plugins pydot && \ - pip cache purge - -# tf-nightly for performance test -# more details: https://github.com/tensorflow/tensorflow/issues/44194 -RUN pip uninstall tensorflow -y; pip install tf-nightly==2.7.0.dev20210722 -RUN pip uninstall keras-nightly -y; pip install keras-nightly==2.7.0.dev2021072200 - - -RUN mkdir -p /usr/local/nvidia/lib64 && \ - ln -s /usr/local/cuda/lib64/libcusolver.so /usr/local/nvidia/lib64/libcusolver.so.10 - -RUN pip install pybind11 -SHELL ["/bin/bash", "-c"] - -# prepare nccl -RUN apt remove -y libnccl2 libnccl-dev -RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \ - && mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 \ - && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub \ - && add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" \ - && apt-get update \ - && apt install libnccl2=2.8.4-1+cuda11.2 libnccl-dev=2.8.4-1+cuda11.2 - -# install Horovod -RUN pip uninstall horovod -y -RUN HOROVOD_WITH_MPI=1 HOROVOD_WITH_TENSORFLOW=1 HOROVOD_GPU_OPERATIONS=NCCL \ - pip install horovod[spark] --no-cache-dir - -# Install NVTabular -RUN git clone https://github.com/NVIDIA/NVTabular.git /nvtabular/ && \ - cd /nvtabular/; if [ "$RELEASE" == "true" ] && [ ${NVTAB_VER} != "vnightly" ] ; then git fetch --all --tags && git checkout tags/${NVTAB_VER}; else git checkout main; fi; \ - python setup.py develop --user; - - -RUN pip install pynvml pytest graphviz sklearn scipy matplotlib -RUN pip install nvidia-pyindex; pip install tritonclient[all] grpcio-channelz -RUN pip install nvtx mpi4py==3.0.3 cupy-cuda112 cachetools typing_extensions fastavro - -RUN apt-get update; apt-get install -y graphviz - -RUN pip uninstall numpy -y; pip install numpy -RUN pip install dask==2021.04.1 distributed==2021.04.1 dask-cuda -RUN pip install dask[dataframe]==2021.04.1 -RUN pip uninstall pandas -y; pip install pandas==1.1.5 -RUN echo $(du -h --max-depth=1 /) - - -# install spark-3.1.2-bin-hadoop3.2 -RUN wget \ - https://mirror-hk.koddos.net/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz \ - && tar -xzf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/ \ - && rm spark-3.1.2-bin-hadoop3.2.tgz - -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get install openjdk-8-jdk openjdk-8-jre lsb-release -y --allow-downgrades --allow-change-held-packages --no-install-recommends -ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-amd64 -ENV PATH $PATH:/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin:/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin - -# add spark env to conf -ADD spark-env.sh /opt/spark-3.1.2-bin-hadoop3.2/conf/ - -ADD start-spark.sh /workspace/ -ADD submit.sh /workspace/ -ADD criteo_keras.py /workspace/ - -HEALTHCHECK NONE -ENTRYPOINT [] -CMD ["/bin/bash"] diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile.conda_db b/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile.conda_db deleted file mode 100644 index 475b99149..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/Dockerfile.conda_db +++ /dev/null @@ -1,78 +0,0 @@ -# -# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -FROM nvidia/cuda:11.4.3-cudnn8-devel-ubuntu20.04 - -ENV DEBIAN_FRONTEND=noninteractive -# Disable NVIDIA repos to prevent accidental upgrades. -RUN cd /etc/apt/sources.list.d && \ - mv cuda.list cuda.list.disabled - -# See https://github.com/databricks/containers/blob/master/ubuntu/minimal/Dockerfile -RUN apt-get update && \ - apt-get install --yes --no-install-recommends \ - openjdk-8-jdk \ - openjdk-8-jre \ - lsb-release \ - iproute2 \ - bash \ - sudo \ - coreutils \ - procps \ - wget && \ - /var/lib/dpkg/info/ca-certificates-java.postinst configure && \ - rm -rf /var/lib/apt/lists/* - - -ENV PATH /databricks/conda/bin:$PATH - -RUN wget -q https://repo.continuum.io/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh -O miniconda.sh && \ - bash miniconda.sh -b -p /databricks/conda && \ - rm miniconda.sh && \ - # Source conda.sh for all login and interactive shells. - ln -s /databricks/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \ - echo ". /etc/profile.d/conda.sh" >> ~/.bashrc && \ - # Set always_yes for non-interactive shells. - conda config --system --set always_yes True && \ - conda clean --all - -# install openjdk8, cmake, openmpi openmpi-mpicc -RUN conda install cmake openmpi openmpi-mpicc -y -ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-amd64 -ENV PATH $PATH:/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin:/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin - -RUN conda install -y -c nvidia -c rapidsai -c numba -c conda-forge nvtabular=1.2.2 python=3.8 cudatoolkit=11.4 scikit-learn - -RUN pip uninstall tensorflow -y; pip install tensorflow-gpu==2.8 -RUN pip install torch==1.11.0+cu115 torchvision==0.12.0+cu115 torchaudio===0.11.0+cu115 -f https://download.pytorch.org/whl/cu115/torch_stable.html -RUN rm -rf /databricks/conda/include/google -RUN HOROVOD_WITH_MPI=1 HOROVOD_GPU_OPERATIONS=NCCL HOROVOD_WITH_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 \ - pip install horovod[spark] --no-cache-dir -RUN pip install pynvml jupyter matplotlib - - -RUN apt-get update && apt-get install wget openssh-client openssh-server \ - -y --allow-downgrades --allow-change-held-packages --no-install-recommends -RUN useradd --create-home --shell /bin/bash --groups sudo ubuntu - -ENV PYSPARK_PYTHON=/databricks/conda/bin/python -ENV USER root -ENV DEFAULT_DATABRICKS_ROOT_CONDA_ENV=base -ENV DATABRICKS_ROOT_CONDA_ENV=base -# disable gds due to errors -ENV LIBCUDF_CUFILE_POLICY=OFF -# required by DB -RUN pip install virtualenv -RUN pip install adlfs diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/README.md b/examples/ML+DL-Examples/Spark-DL/criteo_train/README.md deleted file mode 100644 index 083894055..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Criteo - -ETL and deep learning training of the Criteo 1TB Click Logs dataset. Users can prepare their dataset accordingly. - -_Please note: The following demo is dedicated for DGX-2 machine(with V100 GPUs)._ We optimized the whole workflow on DGX-2 and it's not guaranteed that it can run successfully on other type of machines. - -## Dataset - -The dataset used here is from Criteo clicklog dataset. -It's preprocessed by [DLRM](https://github.com/NVIDIA/DeepLearningExamples/tree/master/TensorFlow2/Recommendation/DLRM_and_DCNv2/preproc) -ETL job on Spark. We also provide a small size sample data in sample_data folder. -All 40 columns(1 label + 39 features) are already numeric. - -In the following parts, we assume that the data are mounted as docker volumn at `/data/parquet` - -## Run Criteo example benchmark using Dockerfile - -1. Build the docker image -``` -nvidia-docker build -f Dockerfile -t nvspark/tf-hvd-train:0.1 . -``` - -2. Enter into it (also mount necessary dataset volume and devices) -``` - nvidia-docker run \ - --network host \ - --device /dev/infiniband \ - --privileged \ - -v /raid/spark-team/criteo/parquet:/data/parquet \ - -it nvspark/tf-hvd-train:0.1 bash -``` - -3. when you are inside the container -``` -cd /workspace -# start standalone Spark -./start-spark.sh - -# start training -./submit.sh -``` - -## Notebook demo - -We also provide a Notebook demo for quick test, user can set it up by the following command: - -```bash -SPARK_HOME= $PATH_TO_SPARK_HOME -SPARK_URL=spark://$SPARK_MASTER_IP:7077 -export PYSPARK_DRIVER_PYTHON=jupyter -export PYSPARK_DRIVER_PYTHON_OPTS='notebook' - -$SPARK_HOME/bin/pyspark --master $SPARK_URL --deploy-mode client \ ---driver-memory 20G \ ---executor-memory 50G \ ---executor-cores 6 \ ---conf spark.cores.max=96 \ ---conf spark.task.cpus=6 \ ---conf spark.locality.wait=0 \ ---conf spark.yarn.maxAppAttempts=1 \ ---conf spark.sql.shuffle.partitions=4 \ ---conf spark.sql.files.maxPartitionBytes=1024m \ ---conf spark.sql.warehouse.dir=$OUT \ ---conf spark.task.resource.gpu.amount=0.08 \ ---conf spark.executor.resource.gpu.amount=1 \ ---conf spark.executor.resource.gpu.discoveryScript=./getGpusResources.sh \ ---files $SPARK_HOME/examples/src/main/scripts/getGpusResources.sh - -``` - -## Note: - -If you want to try in a node with only 1 GPU, please modify the GPU number per worker in `$SPARK_HOME/conf/spark-env.sh` before you launch spark workers becasue the docker image is targeted for DGX-2 with 16 GPUs - -## file decription: - -`Dockerfile`: consistent environment, main components are build from source directly. But this file take a while to build an image. - -`spark-env.sh`: Spark config changes, we set 16 GPU for a work for DGX-2 box. It is in SPARK_HOME/conf/ - -`start-spark.sh`: launch Spark in standalone mode. In a DGX-2 box, it will launch Spark Master and a Spark Worker which contains 16 GPUs - -`submit.sh`: commands used to submit the job - -`criteo_keras.py`: Python script to train the Criteo model. Please run `python criteo_keras.py --help` to see parameter details - -## workspace folder in docker container: - -`/workspace/` - -## Run in Databricks Runtime -Some extra packages are required to run the example, we provide a Dockerfile [Dockerfile.conda_db](Dockerfile.conda_db) -to use [Customize containers with Databricks Container Services](https://docs.databricks.com/clusters/custom-containers.html) -in Databricks cloud environment. - -To use it: -1. build the docker image locally -2. push the image to a DB supported Docker hub. -3. set the image url in DB cluster setup page. - -![microbenchmark-speedup](/docs/img/guides/criteo-perf.png) \ No newline at end of file diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/create-conda-env.sh b/examples/ML+DL-Examples/Spark-DL/criteo_train/create-conda-env.sh deleted file mode 100755 index f3ba315f3..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/create-conda-env.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash --login - -export HOROVOD_CUDA_HOME=/usr/local/cuda -export HOROVOD_NCCL_LINK=SHARED -export HOROVOD_GPU_OPERATIONS=NCCL - -# Create the conda environment: -conda env create --file environment.yml --force - -# Activate the conda environment: -eval "$(conda shell.bash hook)" -conda activate spark_dl - -# Install tensorflow: -pip install tensorflow-gpu - -# Install pytorch: -pip install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113\ - -f https://download.pytorch.org/whl/cu113/torch_stable.html - -# Install horovod: -pip install horovod[tensorflow,keras,pytorch,spark] - -# Check the build: -horovodrun --check-build - -echo -echo "Run 'conda activate spark_dl' to activate the environment" -echo diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/criteo_keras.py b/examples/ML+DL-Examples/Spark-DL/criteo_train/criteo_keras.py deleted file mode 100644 index bb653f9e6..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/criteo_keras.py +++ /dev/null @@ -1,309 +0,0 @@ -# -# Copyright (c) 2021-2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -import argparse -import math -import pprint -import sys - -# This needs to happen first to avoid pyarrow serialization errors. -from pyspark.sql import SparkSession - -# Make sure pyarrow is referenced before anything else to avoid segfault due to conflict -# with TensorFlow libraries. Use `pa` package reference to ensure it's loaded before -# functions like `deserialize_model` which are implemented at the top level. -# See https://jira.apache.org/jira/browse/ARROW-3346 -import pyarrow as pa - -import horovod -import horovod.tensorflow.keras as hvd -import tensorflow as tf -from horovod.spark.common.backend import SparkBackend -from tensorflow.keras.layers import BatchNormalization, Input, Embedding, Concatenate, Dense, Flatten -from tensorflow.keras.layers.experimental.preprocessing import CategoryEncoding - -PETASTORM_DATALOADER = 'petastorm' -NVTABULAR_DATALOADER = 'nvtabular' - -CONTINUOUS_COLUMNS = [f'i{i}' for i in range(13)] -CATEGORICAL_COLUMNS = [f'c{c}' for c in range(26)] -ALL_COLUMNS = CONTINUOUS_COLUMNS + CATEGORICAL_COLUMNS -LABEL_COLUMNS = ['clicked'] - - -def get_category_dimensions(spark, data_dir): - df = spark.read.csv(f'{data_dir}/dimensions/*.csv', header=True).toPandas() - dimensions = df.to_dict('records')[0] - pprint.pprint(dimensions) - return dimensions - - -def build_model(dimensions, args): - inputs = { - **{i: Input(shape=(1,), name=i, dtype=tf.float32) for i in CONTINUOUS_COLUMNS}, - **{c: Input(shape=(1,), name=c, dtype=tf.int32) for c in CATEGORICAL_COLUMNS} - } - - one_hots = [] - embeddings = [] - for c in CATEGORICAL_COLUMNS: - dimension = int(dimensions[c]) + 1 - if dimension <= 128: - one_hots.append(CategoryEncoding(num_tokens=dimension, name=f'one_hot_{c}')(inputs[c])) - else: - embedding_size = int(math.floor(0.6 * dimension ** 0.25)) - embeddings.append(Embedding(input_dim=dimension, - output_dim=embedding_size, - input_length=1, - name=f'embedding_{c}')(inputs[c])) - - x = Concatenate(name='embeddings_concat')(embeddings) - x = Flatten(name='embeddings_flatten')(x) - x = Concatenate(name='inputs_concat')([x] + one_hots + [inputs[i] for i in CONTINUOUS_COLUMNS]) - x = BatchNormalization()(x) - x = Dense(1024, activation='relu')(x) - x = BatchNormalization()(x) - x = Dense(1024, activation='relu')(x) - x = BatchNormalization()(x) - x = Dense(1024, activation='relu')(x) - x = BatchNormalization()(x) - x = Dense(512, activation='relu')(x) - output = Dense(1, activation='sigmoid', name='output')(x) - model = tf.keras.Model(inputs=[inputs[c] for c in ALL_COLUMNS], outputs=output) - if hvd.rank() == 0: - model.summary() - - opt = tf.keras.optimizers.Adam(learning_rate=args.learning_rate) - opt = hvd.DistributedOptimizer(opt) - model.compile(optimizer=opt, loss='binary_crossentropy', metrics=[tf.keras.metrics.AUC()]) - - return model - - -def train_fn(dimensions, train_rows, val_rows, args): - # Make sure pyarrow is referenced before anything else to avoid segfault due to conflict - # with TensorFlow libraries. Use `pa` package reference to ensure it's loaded before - # functions like `deserialize_model` which are implemented at the top level. - # See https://jira.apache.org/jira/browse/ARROW-3346 - pa - - import atexit - import horovod.tensorflow.keras as hvd - from horovod.spark.task import get_available_devices - import os - import tempfile - import tensorflow as tf - import tensorflow.keras.backend as K - import shutil - - gpus = get_available_devices() - if gpus: - os.environ['CUDA_VISIBLE_DEVICES'] = gpus[0] - if args.dataloader == NVTABULAR_DATALOADER: - os.environ['TF_MEMORY_ALLOCATION'] = '0.85' - from nvtabular.loader.tensorflow import KerasSequenceLoader - - # Horovod: initialize Horovod inside the trainer. - hvd.init() - - # Horovod: restore from checkpoint, use hvd.load_model under the hood. - model = build_model(dimensions, args) - - # Horovod: adjust learning rate based on number of processes. - scaled_lr = K.get_value(model.optimizer.lr) * hvd.size() - K.set_value(model.optimizer.lr, scaled_lr) - - # Horovod: print summary logs on the first worker. - verbose = 1 if hvd.rank() == 0 else 0 - - callbacks = [ - # Horovod: broadcast initial variable states from rank 0 to all other processes. - # This is necessary to ensure consistent initialization of all workers when - # training is started with random weights or restored from a checkpoint. - hvd.callbacks.BroadcastGlobalVariablesCallback(root_rank=0), - - # Horovod: average metrics among workers at the end of every epoch. - # - # Note: This callback must be in the list before the ReduceLROnPlateau, - # TensorBoard, or other metrics-based callbacks. - hvd.callbacks.MetricAverageCallback(), - - # Horovod: using `lr = 1.0 * hvd.size()` from the very beginning leads to worse final - # accuracy. Scale the learning rate `lr = 1.0` ---> `lr = 1.0 * hvd.size()` during - # the first five epochs. See https://arxiv.org/abs/1706.02677 for details. - hvd.callbacks.LearningRateWarmupCallback(initial_lr=scaled_lr, warmup_epochs=5, verbose=verbose), - - # Reduce LR if the metric is not improved for 10 epochs, and stop training - # if it has not improved for 20 epochs. - tf.keras.callbacks.ReduceLROnPlateau(monitor='val_auc', patience=10, verbose=verbose), - tf.keras.callbacks.EarlyStopping(monitor='val_auc', mode='min', patience=20, verbose=verbose), - tf.keras.callbacks.TerminateOnNaN(), - - # Log Tensorboard events. - tf.keras.callbacks.TensorBoard(log_dir=args.logs_dir, write_steps_per_second=True, update_freq=10) - ] - - # Horovod: save checkpoints only on the first worker to prevent other workers from corrupting them. - if hvd.rank() == 0: - ckpt_dir = tempfile.mkdtemp() - ckpt_file = os.path.join(ckpt_dir, 'checkpoint.h5') - atexit.register(lambda: shutil.rmtree(ckpt_dir)) - callbacks.append(tf.keras.callbacks.ModelCheckpoint( - ckpt_file, monitor='val_auc', mode='min', save_best_only=True)) - - if args.dataloader == PETASTORM_DATALOADER: - from petastorm import make_batch_reader - from petastorm.tf_utils import make_petastorm_dataset - - # Make Petastorm readers. - with make_batch_reader(f'{args.data_dir}/train', - num_epochs=None, - cur_shard=hvd.rank(), - shard_count=hvd.size(), - hdfs_driver='libhdfs') as train_reader: - with make_batch_reader(f'{args.data_dir}/val', - num_epochs=None, - cur_shard=hvd.rank(), - shard_count=hvd.size(), - hdfs_driver='libhdfs') as val_reader: - # Convert readers to tf.data.Dataset. - train_ds = make_petastorm_dataset(train_reader) \ - .unbatch() \ - .shuffle(10 * args.batch_size) \ - .batch(args.batch_size) \ - .map(lambda x: (tuple(getattr(x, c) for c in ALL_COLUMNS), x.clicked)) - - val_ds = make_petastorm_dataset(val_reader) \ - .unbatch() \ - .batch(args.batch_size) \ - .map(lambda x: (tuple(getattr(x, c) for c in ALL_COLUMNS), x.clicked)) - - history = model.fit(train_ds, - validation_data=val_ds, - steps_per_epoch=int(train_rows / args.batch_size / hvd.size()), - validation_steps=int(val_rows / args.batch_size / hvd.size()), - callbacks=callbacks, - verbose=verbose, - epochs=args.epochs) - - else: - import cupy - - def seed_fn(): - """ - Generate consistent dataloader shuffle seeds across workers - Reseeds each worker's dataloader each epoch to get fresh a shuffle - that's consistent across workers. - """ - min_int, max_int = tf.int32.limits - max_rand = max_int // hvd.size() - # Generate a seed fragment on each worker - seed_fragment = cupy.random.randint(0, max_rand).get() - # Aggregate seed fragments from all Horovod workers - seed_tensor = tf.constant(seed_fragment) - reduced_seed = hvd.allreduce(seed_tensor, name="shuffle_seed", op=hvd.Sum) - return reduced_seed % max_rand - - train_ds = KerasSequenceLoader( - f'{args.data_dir}/train', - batch_size=args.batch_size, - label_names=LABEL_COLUMNS, - cat_names=CATEGORICAL_COLUMNS, - cont_names=CONTINUOUS_COLUMNS, - engine="parquet", - shuffle=True, - buffer_size=0.06, # how many batches to load at once - parts_per_chunk=1, - global_size=hvd.size(), - global_rank=hvd.rank(), - seed_fn=seed_fn) - - val_ds = KerasSequenceLoader( - f'{args.data_dir}/val', - batch_size=args.batch_size, - label_names=LABEL_COLUMNS, - cat_names=CATEGORICAL_COLUMNS, - cont_names=CONTINUOUS_COLUMNS, - engine="parquet", - shuffle=False, - buffer_size=0.06, # how many batches to load at once - parts_per_chunk=1, - global_size=hvd.size(), - global_rank=hvd.rank()) - - history = model.fit(train_ds, - validation_data=val_ds, - steps_per_epoch=int(train_rows / args.batch_size / hvd.size()), - validation_steps=int(val_rows / args.batch_size / hvd.size()), - callbacks=callbacks, - verbose=verbose, - epochs=args.epochs) - - if hvd.rank() == 0: - return history.history - - -def train(dimensions, train_rows, val_rows, args): - # Horovod: run training. - history = horovod.spark.run(train_fn, - args=(dimensions, train_rows, val_rows, args), - num_proc=args.num_proc, - extra_mpi_args='-mca btl_tcp_if_include enp134s0f0 -x NCCL_IB_GID_INDEX=3', - stdout=sys.stdout, - stderr=sys.stderr, - verbose=2, - nics={}, - prefix_output_with_timestamp=True)[0] - - best_val_loss = min(history['val_loss']) - print('Best Loss: %f' % best_val_loss) - - -def main(): - parser = argparse.ArgumentParser(description='Criteo Spark Keras Training Example', - formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument('--data-dir', default='file:///opt/data/criteo/parquet', - help='location of the transformed Criteo dataset in Parquet format') - parser.add_argument('--logs-dir', default='/opt/experiments/criteo', help='location of TensorFlow logs') - parser.add_argument('--dataloader', default=PETASTORM_DATALOADER, - choices=[PETASTORM_DATALOADER, NVTABULAR_DATALOADER], - help='dataloader to use') - parser.add_argument('--num-proc', type=int, default=1, help='number of worker processes for training') - parser.add_argument('--learning-rate', type=float, default=0.0001, help='initial learning rate') - parser.add_argument('--batch-size', type=int, default=64 * 1024, help='batch size') - parser.add_argument('--epochs', type=int, default=3, help='number of epochs to train') - parser.add_argument('--local-checkpoint-file', default='checkpoint', help='model checkpoint') - args = parser.parse_args() - - spark = SparkSession.builder.appName('Criteo Keras Training').getOrCreate() - - dimensions = get_category_dimensions(spark, args.data_dir) - - train_df = spark.read.parquet(f'{args.data_dir}/train') - val_df = spark.read.parquet(f'{args.data_dir}/val') - test_df = spark.read.parquet(f'{args.data_dir}/test') - train_rows, val_rows, test_rows = train_df.count(), val_df.count(), test_df.count() - print('Training: %d' % train_rows) - print('Validation: %d' % val_rows) - print('Test: %d' % test_rows) - - train(dimensions, train_rows, val_rows, args) - - spark.stop() - - -if __name__ == '__main__': - main() diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/environment.yml b/examples/ML+DL-Examples/Spark-DL/criteo_train/environment.yml deleted file mode 100644 index 9bb5e3a52..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/environment.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: spark_dl -channels: - - rapidsai - - nvidia - - pytorch - - conda-forge -dependencies: - - nvtabular - - python>=3.7 - - cudatoolkit=11.2 - - cudf>=21.10.* - - dask-cuda>=21.10.* - - dask-cudf>=21.10.* - - rmm>=21.10.* - - dask==2021.9.1 - - distributed>=2021.9.1 - - fsspec>=0.6.0 - - nvtx>=0.2.1 - - numba>=0.53.0 - - dlpack - - scikit-learn - - asvdb - - pynvml - - cmake - - cudnn - - cxx-compiler - - nccl - - nvcc_linux-64 - - openmpi - - pip diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/notebooks/Criteo-Training.ipynb b/examples/ML+DL-Examples/Spark-DL/criteo_train/notebooks/Criteo-Training.ipynb deleted file mode 100644 index d760106b4..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/notebooks/Criteo-Training.ipynb +++ /dev/null @@ -1,12675 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "dd4592b6", - "metadata": {}, - "source": [ - "# Introduction\n", - "\n", - "This notebook contains the same content as \"criteo_keras.py\" but in a notebook(interactive) form.\n", - "\n", - "The dataset used here is from Criteo clicklog dataset. It's preprocessed by DLRM(https://github.com/NVIDIA/DeepLearningExamples/tree/master/TensorFlow2/Recommendation/DLRM_and_DCNv2/preproc) ETL job on Spark.\n", - "\n", - "We provide a small size sample data in `sample_data` folder.\n", - "\n", - "The data schema after the DLRM ETL: also 40 columns -- 1 label column, 39 numerical feature columns. (Categorical columns are processed)\n", - "\n", - "User can either take the same routine to get the data or use your own preprocessed data and change the DL model accordingly.\n", - "\n", - "`Please note: The following demo is dedicated for DGX-2 machine(with V100 GPUs).` We optimized the whole workflow on DGX-2 and it's not guaranteed that it can run successfully on other type of machines." - ] - }, - { - "cell_type": "markdown", - "id": "e8bdbe10", - "metadata": {}, - "source": [ - "### import necessary libraries" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "cd1fb946", - "metadata": {}, - "outputs": [], - "source": [ - "import argparse\n", - "import math\n", - "import pprint\n", - "import sys\n", - "# This needs to happen first to avoid pyarrow serialization errors.\n", - "from pyspark.sql import SparkSession\n", - "\n", - "# Make sure pyarrow is referenced before anything else to avoid segfault due to conflict\n", - "# with TensorFlow libraries. Use `pa` package reference to ensure it's loaded before\n", - "# functions like `deserialize_model` which are implemented at the top level.\n", - "# See https://jira.apache.org/jira/browse/ARROW-3346\n", - "import pyarrow as pa\n", - "\n", - "import horovod\n", - "import horovod.tensorflow.keras as hvd\n", - "import tensorflow as tf\n", - "from horovod.spark.common.backend import SparkBackend\n", - "from tensorflow.keras.layers import BatchNormalization, Input, Embedding, Concatenate, Dense, Flatten\n", - "from tensorflow.keras.layers.experimental.preprocessing import CategoryEncoding" - ] - }, - { - "cell_type": "markdown", - "id": "ffda2b11", - "metadata": {}, - "source": [ - "### set some macros\n", - "\n", - "xxx_DATALOADER is the switch to control which dataloader we will use,\n", - "xxx_COLUMNS are only used in NVTabular dataloader." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "d690dd8b", - "metadata": {}, - "outputs": [], - "source": [ - "PETASTORM_DATALOADER = 'petastorm'\n", - "NVTABULAR_DATALOADER = 'nvtabular'\n", - "\n", - "CONTINUOUS_COLUMNS = [f'i{i}' for i in range(13)]\n", - "CATEGORICAL_COLUMNS = [f'c{c}' for c in range(26)]\n", - "ALL_COLUMNS = CONTINUOUS_COLUMNS + CATEGORICAL_COLUMNS\n", - "LABEL_COLUMNS = ['clicked']" - ] - }, - { - "cell_type": "markdown", - "id": "cdd51a2a", - "metadata": {}, - "source": [ - "The \"dimensions\" contains the count of distinct value for those categorical column 'after' DLRM ETL.\n", - "\n", - "This will be used to build embedding layers for our model." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "92e6d359", - "metadata": {}, - "outputs": [], - "source": [ - "def get_category_dimensions(spark, data_dir):\n", - " df = spark.read.csv(f'{data_dir}/dimensions/*.csv', header=True).toPandas()\n", - " dimensions = df.to_dict('records')[0]\n", - " pprint.pprint(dimensions)\n", - " return dimensions" - ] - }, - { - "cell_type": "markdown", - "id": "66e38f1a", - "metadata": {}, - "source": [ - "### Build the model\n", - "\n", - "The model is composed by mainly 2 parts: embedding layers and fully-connected layers." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "0c29876c", - "metadata": {}, - "outputs": [], - "source": [ - "def build_model(dimensions, args):\n", - " \n", - " inputs = {\n", - " **{i: Input(shape=(1,), name=i, dtype=tf.float32) for i in CONTINUOUS_COLUMNS},\n", - " **{c: Input(shape=(1,), name=c, dtype=tf.int32) for c in CATEGORICAL_COLUMNS}\n", - " }\n", - "\n", - " one_hots = []\n", - " embeddings = []\n", - " for c in CATEGORICAL_COLUMNS:\n", - " dimension = int(dimensions[c]) + 1\n", - " # dimension <= 128, smaller size for demo\n", - " if dimension <= 8:\n", - " one_hots.append(CategoryEncoding(num_tokens=dimension, name=f'one_hot_{c}')(inputs[c]))\n", - " else:\n", - " # embedding_size = int(math.floor(0.6 * dimension ** 0.25)), smaller model size for demo\n", - " embedding_size = 8\n", - " embeddings.append(Embedding(input_dim=dimension,\n", - " output_dim=embedding_size,\n", - " input_length=1,\n", - " name=f'embedding_{c}')(inputs[c]))\n", - "\n", - " x = Concatenate(name='embeddings_concat')(embeddings)\n", - " x = Flatten(name='embeddings_flatten')(x)\n", - " x = Concatenate(name='inputs_concat')([x] + one_hots + [inputs[i] for i in CONTINUOUS_COLUMNS])\n", - " x = BatchNormalization()(x)\n", - " x = Dense(64, activation='relu')(x)\n", - " x = BatchNormalization()(x)\n", - " x = Dense(64, activation='relu')(x)\n", - " x = BatchNormalization()(x)\n", - " x = Dense(64, activation='relu')(x)\n", - " x = BatchNormalization()(x)\n", - " x = Dense(32, activation='relu')(x)\n", - " output = Dense(1, activation='sigmoid', name='output')(x)\n", - " model = tf.keras.Model(inputs=[inputs[c] for c in ALL_COLUMNS], outputs=output)\n", - " if hvd.rank() == 0:\n", - " model.summary()\n", - "\n", - " opt = tf.keras.optimizers.Adam(learning_rate=args.learning_rate)\n", - " opt = hvd.DistributedOptimizer(opt)\n", - " model.compile(optimizer=opt, loss='binary_crossentropy', metrics=[tf.keras.metrics.AUC()])\n", - "\n", - " return model" - ] - }, - { - "cell_type": "markdown", - "id": "7dcc291d", - "metadata": {}, - "source": [ - "### Set train function\n", - "\n", - "The train_fn is the function that will execute across all Horovod workers(also say Spark executors in our case).\n", - "\n", - "We use `CUDA_VISIBLE_DEVICES` to control the GPU resources to avoid overlapping." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "3bc96eb8", - "metadata": {}, - "outputs": [], - "source": [ - "def train_fn(dimensions, train_rows, val_rows, args):\n", - " # Make sure pyarrow is referenced before anything else to avoid segfault due to conflict\n", - " # with TensorFlow libraries. Use `pa` package reference to ensure it's loaded before\n", - " # functions like `deserialize_model` which are implemented at the top level.\n", - " # See https://jira.apache.org/jira/browse/ARROW-3346\n", - " pa\n", - "\n", - " import atexit\n", - " import horovod.tensorflow.keras as hvd\n", - " from horovod.spark.task import get_available_devices\n", - " import os\n", - " import tempfile\n", - " import tensorflow as tf\n", - " import tensorflow.keras.backend as K\n", - " import shutil\n", - "\n", - " gpus = get_available_devices()\n", - " if gpus:\n", - " os.environ['CUDA_VISIBLE_DEVICES'] = gpus[0]\n", - " if args.dataloader == NVTABULAR_DATALOADER:\n", - " os.environ['TF_MEMORY_ALLOCATION'] = '0.85'\n", - " from nvtabular.loader.tensorflow import KerasSequenceLoader\n", - "\n", - " # Horovod: initialize Horovod inside the trainer.\n", - " hvd.init()\n", - "\n", - " # Horovod: restore from checkpoint, use hvd.load_model under the hood.\n", - " model = build_model(dimensions, args)\n", - "\n", - " # Horovod: adjust learning rate based on number of processes.\n", - " scaled_lr = K.get_value(model.optimizer.lr) * hvd.size()\n", - " K.set_value(model.optimizer.lr, scaled_lr)\n", - "\n", - " # Horovod: print summary logs on the first worker.\n", - " verbose = 1 if hvd.rank() == 0 else 0\n", - "\n", - " callbacks = [\n", - " # Horovod: broadcast initial variable states from rank 0 to all other processes.\n", - " # This is necessary to ensure consistent initialization of all workers when\n", - " # training is started with random weights or restored from a checkpoint.\n", - " hvd.callbacks.BroadcastGlobalVariablesCallback(root_rank=0),\n", - "\n", - " # Horovod: average metrics among workers at the end of every epoch.\n", - " #\n", - " # Note: This callback must be in the list before the ReduceLROnPlateau,\n", - " # TensorBoard, or other metrics-based callbacks.\n", - " hvd.callbacks.MetricAverageCallback(),\n", - "\n", - " # Horovod: using `lr = 1.0 * hvd.size()` from the very beginning leads to worse final\n", - " # accuracy. Scale the learning rate `lr = 1.0` ---> `lr = 1.0 * hvd.size()` during\n", - " # the first five epochs. See https://arxiv.org/abs/1706.02677 for details.\n", - " hvd.callbacks.LearningRateWarmupCallback(initial_lr=scaled_lr, warmup_epochs=5, verbose=verbose),\n", - "\n", - " # Reduce LR if the metric is not improved for 10 epochs, and stop training\n", - " # if it has not improved for 20 epochs.\n", - " tf.keras.callbacks.ReduceLROnPlateau(monitor='val_auc', patience=10, verbose=verbose),\n", - " tf.keras.callbacks.EarlyStopping(monitor='val_auc', mode='min', patience=20, verbose=verbose),\n", - " tf.keras.callbacks.TerminateOnNaN(),\n", - "\n", - " # Log Tensorboard events.\n", - " tf.keras.callbacks.TensorBoard(log_dir=args.logs_dir, write_steps_per_second=True, update_freq=10)\n", - " ]\n", - "\n", - " # Horovod: save checkpoints only on the first worker to prevent other workers from corrupting them.\n", - " if hvd.rank() == 0:\n", - " ckpt_dir = tempfile.mkdtemp()\n", - " ckpt_file = os.path.join(ckpt_dir, 'checkpoint.h5')\n", - " atexit.register(lambda: shutil.rmtree(ckpt_dir))\n", - " callbacks.append(tf.keras.callbacks.ModelCheckpoint(\n", - " ckpt_file, monitor='val_auc', mode='min', save_best_only=True))\n", - "\n", - " if args.dataloader == PETASTORM_DATALOADER:\n", - " from petastorm import make_batch_reader\n", - " from petastorm.tf_utils import make_petastorm_dataset\n", - "\n", - " # Make Petastorm readers.\n", - " with make_batch_reader(f'{args.data_dir}/train',\n", - " num_epochs=None,\n", - " cur_shard=hvd.rank(),\n", - " shard_count=hvd.size(),\n", - " hdfs_driver='libhdfs') as train_reader:\n", - " with make_batch_reader(f'{args.data_dir}/val',\n", - " num_epochs=None,\n", - " cur_shard=hvd.rank(),\n", - " shard_count=hvd.size(),\n", - " hdfs_driver='libhdfs') as val_reader:\n", - " # Convert readers to tf.data.Dataset.\n", - " train_ds = make_petastorm_dataset(train_reader) \\\n", - " .unbatch() \\\n", - " .shuffle(10 * args.batch_size) \\\n", - " .batch(args.batch_size) \\\n", - " .map(lambda x: (tuple(getattr(x, c) for c in ALL_COLUMNS), x.clicked))\n", - "\n", - " val_ds = make_petastorm_dataset(val_reader) \\\n", - " .unbatch() \\\n", - " .batch(args.batch_size) \\\n", - " .map(lambda x: (tuple(getattr(x, c) for c in ALL_COLUMNS), x.clicked))\n", - "\n", - " history = model.fit(train_ds,\n", - " validation_data=val_ds,\n", - " steps_per_epoch=int(train_rows / args.batch_size / hvd.size()),\n", - " validation_steps=int(val_rows / args.batch_size / hvd.size()),\n", - " callbacks=callbacks,\n", - " verbose=verbose,\n", - " epochs=args.epochs)\n", - "\n", - " else:\n", - " import cupy\n", - "\n", - " def seed_fn():\n", - " \"\"\"\n", - " Generate consistent dataloader shuffle seeds across workers\n", - " Reseeds each worker's dataloader each epoch to get fresh a shuffle\n", - " that's consistent across workers.\n", - " \"\"\"\n", - " min_int, max_int = tf.int32.limits\n", - " max_rand = max_int // hvd.size()\n", - " # Generate a seed fragment on each worker\n", - " seed_fragment = cupy.random.randint(0, max_rand).get()\n", - " # Aggregate seed fragments from all Horovod workers\n", - " seed_tensor = tf.constant(seed_fragment)\n", - " reduced_seed = hvd.allreduce(seed_tensor, name=\"shuffle_seed\", op=hvd.Sum)\n", - " return reduced_seed % max_rand\n", - "\n", - " train_ds = KerasSequenceLoader(\n", - " f'{args.data_dir}/train',\n", - " batch_size=args.batch_size,\n", - " label_names=LABEL_COLUMNS,\n", - " cat_names=CATEGORICAL_COLUMNS,\n", - " cont_names=CONTINUOUS_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=True,\n", - " buffer_size=0.06, # how many batches to load at once\n", - " parts_per_chunk=1,\n", - " global_size=hvd.size(),\n", - " global_rank=hvd.rank(),\n", - " seed_fn=seed_fn)\n", - "\n", - " val_ds = KerasSequenceLoader(\n", - " f'{args.data_dir}/val',\n", - " batch_size=args.batch_size,\n", - " label_names=LABEL_COLUMNS,\n", - " cat_names=CATEGORICAL_COLUMNS,\n", - " cont_names=CONTINUOUS_COLUMNS,\n", - " engine=\"parquet\",\n", - " shuffle=False,\n", - " buffer_size=0.06, # how many batches to load at once\n", - " parts_per_chunk=1,\n", - " global_size=hvd.size(),\n", - " global_rank=hvd.rank())\n", - "\n", - " history = model.fit(train_ds,\n", - " validation_data=val_ds,\n", - " steps_per_epoch=int(train_rows / args.batch_size / hvd.size()),\n", - " validation_steps=int(val_rows / args.batch_size / hvd.size()),\n", - " callbacks=callbacks,\n", - " verbose=verbose,\n", - " epochs=args.epochs)\n", - "\n", - " if hvd.rank() == 0:\n", - " return history.history" - ] - }, - { - "cell_type": "markdown", - "id": "392ac264", - "metadata": {}, - "source": [ - "### Wrapper function to train\n", - "\n", - "Here we call the `horovod.spark.run` to start the training process in Horovod on Spark." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "f9b8459d", - "metadata": {}, - "outputs": [], - "source": [ - "def train(dimensions, train_rows, val_rows, args):\n", - " # Horovod: run training.\n", - " history = horovod.spark.run(train_fn,\n", - " args=(dimensions, train_rows, val_rows, args),\n", - " num_proc=args.num_proc,\n", - " extra_mpi_args='-mca btl_tcp_if_include enp134s0f0 -x NCCL_IB_GID_INDEX=3',\n", - " stdout=sys.stdout,\n", - " stderr=sys.stderr,\n", - " verbose=2,\n", - " nics={},\n", - " prefix_output_with_timestamp=True)[0]\n", - "\n", - " best_val_loss = min(history['val_loss'])\n", - " print('Best Loss: %f' % best_val_loss)" - ] - }, - { - "cell_type": "markdown", - "id": "3e4ac6b8", - "metadata": {}, - "source": [ - "## Use NVTabular\n", - "\n", - "Here we set `--dataloader` to `nvtabular` to force NVTabular run." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "c2afc3a4", - "metadata": {}, - "outputs": [], - "source": [ - "def main():\n", - " parser = argparse.ArgumentParser(description='Criteo Spark Keras Training Example',\n", - " formatter_class=argparse.ArgumentDefaultsHelpFormatter)\n", - " parser.add_argument('--data-dir', default='file:///opt/data/criteo/parquet',\n", - " help='location of the transformed Criteo dataset in Parquet format')\n", - " parser.add_argument('--logs-dir', default='/opt/experiments/criteo', help='location of TensorFlow logs')\n", - " parser.add_argument('--dataloader', default=PETASTORM_DATALOADER,\n", - " choices=[PETASTORM_DATALOADER, NVTABULAR_DATALOADER],\n", - " help='dataloader to use')\n", - " parser.add_argument('--num-proc', type=int, default=1, help='number of worker processes for training')\n", - " parser.add_argument('--learning-rate', type=float, default=0.0001, help='initial learning rate')\n", - " parser.add_argument('--batch-size', type=int, default=64 * 1024, help='batch size')\n", - " parser.add_argument('--epochs', type=int, default=3, help='number of epochs to train')\n", - " parser.add_argument('--local-checkpoint-file', default='checkpoint', help='model checkpoint')\n", - " args = parser.parse_args(args=['--num-proc', '16', '--data-dir', 'file:///raid/spark-team/criteo/parquet', \n", - " '--dataloader', 'nvtabular', '--learning-rate', '0.001',\n", - " '--batch-size', '65535','--epochs', '1', '--logs-dir', 'tf_logs',\n", - " '--local-checkpoint-file', 'ckpt_file'])\n", - " \n", - "\n", - " dimensions = get_category_dimensions(spark, args.data_dir)\n", - "\n", - " train_df = spark.read.parquet(f'{args.data_dir}/train')\n", - " val_df = spark.read.parquet(f'{args.data_dir}/val')\n", - " test_df = spark.read.parquet(f'{args.data_dir}/test')\n", - " train_rows, val_rows, test_rows = train_df.count(), val_df.count(), test_df.count()\n", - " print('Training: %d' % train_rows)\n", - " print('Validation: %d' % val_rows)\n", - " print('Test: %d' % test_rows)\n", - "\n", - " train(dimensions, train_rows, val_rows, args)\n", - "\n", - " spark.stop()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "a15573e3", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "21/09/06 09:03:44 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'.\n", - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'c0': '7912888',\n", - " 'c1': '33822',\n", - " 'c10': '582468',\n", - " 'c11': '245827',\n", - " 'c12': '10',\n", - " 'c13': '2208',\n", - " 'c14': '10666',\n", - " 'c15': '103',\n", - " 'c16': '3',\n", - " 'c17': '967',\n", - " 'c18': '14',\n", - " 'c19': '8165895',\n", - " 'c2': '17138',\n", - " 'c20': '2675939',\n", - " 'c21': '7156452',\n", - " 'c22': '302515',\n", - " 'c23': '12021',\n", - " 'c24': '96',\n", - " 'c25': '34',\n", - " 'c3': '7338',\n", - " 'c4': '20045',\n", - " 'c5': '3',\n", - " 'c6': '7104',\n", - " 'c7': '1381',\n", - " 'c8': '62',\n", - " 'c9': '5554113'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training: 4195197692\n", - "Validation: 89137318\n", - "Test: 89137319\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Checking whether extension tensorflow was built with MPI.\n", - "Extension tensorflow was built with MPI.\n", - "mpirun --allow-run-as-root --tag-output -np 16 -H dgx2h0194-a1adff968d508e8d1142986f3e2c42dc:16 -bind-to none -map-by slot -mca pml ob1 -mca btl ^openib --timestamp-output -mca btl_tcp_if_include enp134s0f0 -x NCCL_IB_GID_INDEX=3 -x NCCL_DEBUG=INFO -mca plm_rsh_agent \"/home/ngc-auth-ldap-allxu/miniconda3/bin/python -m horovod.spark.driver.mpirun_rsh gAWVcAEAAAAAAAB9lCiMAmxvlF2UjAkxMjcuMC4wLjGUTWIShpRhjAdlbnA1M3MwlF2UjAwxMC4xNDguMzAuNTmUTWIShpRhjAdlbnA1OHMwlF2UjAwxMC4xNDguOTQuNTmUTWIShpRhjAdlbnA4OHMwlF2UjAwxMC4xNDkuMzAuMzSUTWIShpRhjAdlbnA5M3MwlF2UjAwxMC4xNDkuOTQuNTeUTWIShpRhjAplbnAxMzRzMGYwlF2UjAsxMC4xNTAuMzAuMpRNYhKGlGGMCGVucDE4NHMwlF2UjA0xMC4xNDguMTU4LjU5lE1iEoaUYYwIZW5wMTg5czCUXZSMDTEwLjE0OC4yMjIuNTmUTWIShpRhjAhlbnAyMjVzMJRdlIwNMTAuMTQ5LjE1OC41N5RNYhKGlGGMCGVucDIzMHMwlF2UjA0xMC4xNDkuMjIyLjU3lE1iEoaUYYwHZG9ja2VyMJRdlIwKMTcyLjE3LjAuMZRNYhKGlGF1Lg== gAWVAwMAAAAAAACMI2hvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnNldHRpbmdzlIwIU2V0dGluZ3OUk5QpgZR9lCiMCG51bV9wcm9jlEsQjAd2ZXJib3NllEsCjAhzc2hfcG9ydJROjBFzc2hfaWRlbnRpdHlfZmlsZZROjA5leHRyYV9tcGlfYXJnc5SMOS1tY2EgYnRsX3RjcF9pZl9pbmNsdWRlIGVucDEzNHMwZjAgLXggTkNDTF9JQl9HSURfSU5ERVg9M5SMCHRjcF9mbGFnlE6MDGJpbmRpbmdfYXJnc5ROjANrZXmUTowNc3RhcnRfdGltZW91dJSMImhvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnRpbWVvdXSUjAdUaW1lb3V0lJOUKYGUfZQojAhfdGltZW91dJRNWAKMC190aW1lb3V0X2F0lEdB2E128/YMbIwIX21lc3NhZ2WUWA4BAABUaW1lZCBvdXQgd2FpdGluZyBmb3Ige2FjdGl2aXR5fS4gUGxlYXNlIGNoZWNrIHRoYXQgeW91IGhhdmUgZW5vdWdoIHJlc291cmNlcyB0byBydW4gYWxsIEhvcm92b2QgcHJvY2Vzc2VzLiBFYWNoIEhvcm92b2QgcHJvY2VzcyBydW5zIGluIGEgU3BhcmsgdGFzay4gWW91IG1heSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzdGFydF90aW1lb3V0IHBhcmFtZXRlciB0byBhIGxhcmdlciB2YWx1ZSBpZiB5b3VyIFNwYXJrIHJlc291cmNlcyBhcmUgYWxsb2NhdGVkIG9uLWRlbWFuZC6UdWKMD291dHB1dF9maWxlbmFtZZROjA1ydW5fZnVuY19tb2RllIiMBG5pY3OUfZSMB2VsYXN0aWOUiYwccHJlZml4X291dHB1dF93aXRoX3RpbWVzdGFtcJSIjAVob3N0c5SMLWRneDJoMDE5NC1hMWFkZmY5NjhkNTA4ZThkMTE0Mjk4NmYzZTJjNDJkYzoxNpR1Yi4=\" /home/ngc-auth-ldap-allxu/miniconda3/bin/python -m horovod.spark.task.mpirun_exec_fn gAWVcAEAAAAAAAB9lCiMAmxvlF2UjAkxMjcuMC4wLjGUTWIShpRhjAdlbnA1M3MwlF2UjAwxMC4xNDguMzAuNTmUTWIShpRhjAdlbnA1OHMwlF2UjAwxMC4xNDguOTQuNTmUTWIShpRhjAdlbnA4OHMwlF2UjAwxMC4xNDkuMzAuMzSUTWIShpRhjAdlbnA5M3MwlF2UjAwxMC4xNDkuOTQuNTeUTWIShpRhjAplbnAxMzRzMGYwlF2UjAsxMC4xNTAuMzAuMpRNYhKGlGGMCGVucDE4NHMwlF2UjA0xMC4xNDguMTU4LjU5lE1iEoaUYYwIZW5wMTg5czCUXZSMDTEwLjE0OC4yMjIuNTmUTWIShpRhjAhlbnAyMjVzMJRdlIwNMTAuMTQ5LjE1OC41N5RNYhKGlGGMCGVucDIzMHMwlF2UjA0xMC4xNDkuMjIyLjU3lE1iEoaUYYwHZG9ja2VyMJRdlIwKMTcyLjE3LjAuMZRNYhKGlGF1Lg== gAWVkwkAAAAAAACMI2hvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnNldHRpbmdzlIwIU2V0dGluZ3OUk5QpgZR9lCiMCG51bV9wcm9jlEsQjAd2ZXJib3NllEsCjAhzc2hfcG9ydJROjBFzc2hfaWRlbnRpdHlfZmlsZZROjA5leHRyYV9tcGlfYXJnc5RYxgYAAC1tY2EgYnRsX3RjcF9pZl9pbmNsdWRlIGVucDEzNHMwZjAgLXggTkNDTF9JQl9HSURfSU5ERVg9MyAteCBOQ0NMX0RFQlVHPUlORk8gLW1jYSBwbG1fcnNoX2FnZW50ICIvaG9tZS9uZ2MtYXV0aC1sZGFwLWFsbHh1L21pbmljb25kYTMvYmluL3B5dGhvbiAtbSBob3Jvdm9kLnNwYXJrLmRyaXZlci5tcGlydW5fcnNoIGdBV1ZjQUVBQUFBQUFBQjlsQ2lNQW14dmxGMlVqQWt4TWpjdU1DNHdMakdVVFdJU2hwUmhqQWRsYm5BMU0zTXdsRjJVakF3eE1DNHhORGd1TXpBdU5UbVVUV0lTaHBSaGpBZGxibkExT0hNd2xGMlVqQXd4TUM0eE5EZ3VPVFF1TlRtVVRXSVNocFJoakFkbGJuQTRPSE13bEYyVWpBd3hNQzR4TkRrdU16QXVNelNVVFdJU2hwUmhqQWRsYm5BNU0zTXdsRjJVakF3eE1DNHhORGt1T1RRdU5UZVVUV0lTaHBSaGpBcGxibkF4TXpSek1HWXdsRjJVakFzeE1DNHhOVEF1TXpBdU1wUk5ZaEtHbEdHTUNHVnVjREU0TkhNd2xGMlVqQTB4TUM0eE5EZ3VNVFU0TGpVNWxFMWlFb2FVWVl3SVpXNXdNVGc1Y3pDVVhaU01EVEV3TGpFME9DNHlNakl1TlRtVVRXSVNocFJoakFobGJuQXlNalZ6TUpSZGxJd05NVEF1TVRRNUxqRTFPQzQxTjVSTlloS0dsR0dNQ0dWdWNESXpNSE13bEYyVWpBMHhNQzR4TkRrdU1qSXlMalUzbEUxaUVvYVVZWXdIWkc5amEyVnlNSlJkbEl3S01UY3lMakUzTGpBdU1aUk5ZaEtHbEdGMUxnPT0gZ0FXVkF3TUFBQUFBQUFDTUkyaHZjbTkyYjJRdWNuVnVibVZ5TG1OdmJXMXZiaTUxZEdsc0xuTmxkSFJwYm1kemxJd0lVMlYwZEdsdVozT1VrNVFwZ1pSOWxDaU1DRzUxYlY5d2NtOWpsRXNRakFkMlpYSmliM05sbEVzQ2pBaHpjMmhmY0c5eWRKUk9qQkZ6YzJoZmFXUmxiblJwZEhsZlptbHNaWlJPakE1bGVIUnlZVjl0Y0dsZllYSm5jNVNNT1MxdFkyRWdZblJzWDNSamNGOXBabDlwYm1Oc2RXUmxJR1Z1Y0RFek5ITXdaakFnTFhnZ1RrTkRURjlKUWw5SFNVUmZTVTVFUlZnOU01U01DSFJqY0Y5bWJHRm5sRTZNREdKcGJtUnBibWRmWVhKbmM1Uk9qQU5yWlhtVVRvd05jM1JoY25SZmRHbHRaVzkxZEpTTUltaHZjbTkyYjJRdWNuVnVibVZ5TG1OdmJXMXZiaTUxZEdsc0xuUnBiV1Z2ZFhTVWpBZFVhVzFsYjNWMGxKT1VLWUdVZlpRb2pBaGZkR2x0Wlc5MWRKUk5XQUtNQzE5MGFXMWxiM1YwWDJGMGxFZEIyRTEyOC9ZTWJJd0lYMjFsYzNOaFoyV1VXQTRCQUFCVWFXMWxaQ0J2ZFhRZ2QyRnBkR2x1WnlCbWIzSWdlMkZqZEdsMmFYUjVmUzRnVUd4bFlYTmxJR05vWldOcklIUm9ZWFFnZVc5MUlHaGhkbVVnWlc1dmRXZG9JSEpsYzI5MWNtTmxjeUIwYnlCeWRXNGdZV3hzSUVodmNtOTJiMlFnY0hKdlkyVnpjMlZ6TGlCRllXTm9JRWh2Y205MmIyUWdjSEp2WTJWemN5QnlkVzV6SUdsdUlHRWdVM0JoY21zZ2RHRnpheTRnV1c5MUlHMWhlU0J1WldWa0lIUnZJR2x1WTNKbFlYTmxJSFJvWlNCemRHRnlkRjkwYVcxbGIzVjBJSEJoY21GdFpYUmxjaUIwYnlCaElHeGhjbWRsY2lCMllXeDFaU0JwWmlCNWIzVnlJRk53WVhKcklISmxjMjkxY21ObGN5QmhjbVVnWVd4c2IyTmhkR1ZrSUc5dUxXUmxiV0Z1WkM2VWRXS01EMjkxZEhCMWRGOW1hV3hsYm1GdFpaUk9qQTF5ZFc1ZlpuVnVZMTl0YjJSbGxJaU1CRzVwWTNPVWZaU01CMlZzWVhOMGFXT1VpWXdjY0hKbFptbDRYMjkxZEhCMWRGOTNhWFJvWDNScGJXVnpkR0Z0Y0pTSWpBVm9iM04wYzVTTUxXUm5lREpvTURFNU5DMWhNV0ZrWm1ZNU5qaGtOVEE0WlRoa01URTBNams0Tm1ZelpUSmpOREprWXpveE5wUjFZaTQ9IpSMCHRjcF9mbGFnlE6MDGJpbmRpbmdfYXJnc5ROjANrZXmUTowNc3RhcnRfdGltZW91dJSMImhvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnRpbWVvdXSUjAdUaW1lb3V0lJOUKYGUfZQojAhfdGltZW91dJRNWAKMC190aW1lb3V0X2F0lEdB2E128/YMbIwIX21lc3NhZ2WUWA4BAABUaW1lZCBvdXQgd2FpdGluZyBmb3Ige2FjdGl2aXR5fS4gUGxlYXNlIGNoZWNrIHRoYXQgeW91IGhhdmUgZW5vdWdoIHJlc291cmNlcyB0byBydW4gYWxsIEhvcm92b2QgcHJvY2Vzc2VzLiBFYWNoIEhvcm92b2QgcHJvY2VzcyBydW5zIGluIGEgU3BhcmsgdGFzay4gWW91IG1heSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzdGFydF90aW1lb3V0IHBhcmFtZXRlciB0byBhIGxhcmdlciB2YWx1ZSBpZiB5b3VyIFNwYXJrIHJlc291cmNlcyBhcmUgYWxsb2NhdGVkIG9uLWRlbWFuZC6UdWKMD291dHB1dF9maWxlbmFtZZROjA1ydW5fZnVuY19tb2RllIiMBG5pY3OUfZSMB2VsYXN0aWOUiYwccHJlZml4X291dHB1dF93aXRoX3RpbWVzdGFtcJSIjAVob3N0c5SMLWRneDJoMDE5NC1hMWFkZmY5NjhkNTA4ZThkMTE0Mjk4NmYzZTJjNDJkYzoxNpR1Yi4=\n", - "Mon Sep 6 09:03:56 2021[1,2]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,4]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,0]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,6]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,1]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,5]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,3]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,10]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,7]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,15]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,11]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,13]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,14]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,8]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:03:56 2021[1,9]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n", - "Mon Sep 6 09:03:56 2021[1,12]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906090316-0000/1\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:16 2021[1,4]:2021-09-06 09:04:16.101560: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,4]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,2]:2021-09-06 09:04:16.101685: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,2]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,5]:2021-09-06 09:04:16.101662: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,5]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,13]:2021-09-06 09:04:16.101697: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,13]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,3]:2021-09-06 09:04:16.101749: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,3]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,1]:2021-09-06 09:04:16.102086: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,1]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,15]:2021-09-06 09:04:16.102170: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,15]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,8]:2021-09-06 09:04:16.102756: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,8]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,14]:2021-09-06 09:04:16.102705: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,14]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,7]:2021-09-06 09:04:16.103510: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,7]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,6]:2021-09-06 09:04:16.103663: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,6]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,12]:2021-09-06 09:04:16.103909: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,12]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,0]:2021-09-06 09:04:16.120233: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,0]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,10]:2021-09-06 09:04:16.120234: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,10]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,11]:2021-09-06 09:04:16.120458: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,11]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:16 2021[1,9]:2021-09-06 09:04:16.121686: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 09:04:16 2021[1,9]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 09:04:18 2021[1,5]:2021-09-06 09:04:18.050711: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:bc:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,2]:2021-09-06 09:04:18.111924: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:b7:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,1]:2021-09-06 09:04:18.192508: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:be:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,15]:2021-09-06 09:04:18.258547: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e5:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,9]:2021-09-06 09:04:18.290947: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:59:00.0, compute capability: 7.0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:18 2021[1,11]:2021-09-06 09:04:18.332073: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:3b:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,4]:2021-09-06 09:04:18.333252: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e2:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,3]:2021-09-06 09:04:18.390624: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e7:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,7]:2021-09-06 09:04:18.391931: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:b9:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,8]:2021-09-06 09:04:18.455155: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:34:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,13]:2021-09-06 09:04:18.458402: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:57:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,12]:2021-09-06 09:04:18.460130: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:39:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,10]:2021-09-06 09:04:18.545289: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:5e:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,14]:2021-09-06 09:04:18.545716: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e0:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,0]:2021-09-06 09:04:18.548694: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:36:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,6]:2021-09-06 09:04:18.549196: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 27633 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:5c:00.0, compute capability: 7.0\n", - "Mon Sep 6 09:04:18 2021[1,5]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:18 2021[1,5]: warnings.warn(\n", - "Mon Sep 6 09:04:18 2021[1,5]:2021-09-06 09:04:18.864738: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:18 2021[1,5]:2021-09-06 09:04:18.864766: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:18 2021[1,5]:2021-09-06 09:04:18.864823: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:18 2021[1,2]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:18 2021[1,2]: warnings.warn(\n", - "Mon Sep 6 09:04:18 2021[1,2]:2021-09-06 09:04:18.915255: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:18 2021[1,2]:2021-09-06 09:04:18.915277: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:18 2021[1,2]:2021-09-06 09:04:18.915322: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:18 2021[1,1]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:18 2021[1,1]: warnings.warn(\n", - "Mon Sep 6 09:04:18 2021[1,1]:2021-09-06 09:04:18.936224: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:18 2021[1,1]:2021-09-06 09:04:18.936247: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:18 2021[1,1]:2021-09-06 09:04:18.936299: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:18 2021[1,15]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:18 2021[1,15]: warnings.warn(\n", - "Mon Sep 6 09:04:18 2021[1,15]:2021-09-06 09:04:18.987091: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:18 2021[1,15]:2021-09-06 09:04:18.987119: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:18 2021[1,15]:2021-09-06 09:04:18.987164: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,9]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,9]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,9]:2021-09-06 09:04:19.009288: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,9]:2021-09-06 09:04:19.009310: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,9]:2021-09-06 09:04:19.009354: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,4]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,4]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,4]:2021-09-06 09:04:19.063519: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,4]:2021-09-06 09:04:19.063549: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,4]:2021-09-06 09:04:19.063599: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,11]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,11]: warnings.warn(\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,11]:2021-09-06 09:04:19.064564: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,11]:2021-09-06 09:04:19.064584: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,11]:2021-09-06 09:04:19.064626: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,3]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,3]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,3]:2021-09-06 09:04:19.114647: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,3]:2021-09-06 09:04:19.114675: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,3]:2021-09-06 09:04:19.114721: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,7]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,7]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,7]:2021-09-06 09:04:19.130694: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,7]:2021-09-06 09:04:19.130715: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,7]:2021-09-06 09:04:19.130764: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,13]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,13]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,13]:2021-09-06 09:04:19.209150: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,13]:2021-09-06 09:04:19.209178: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,13]:2021-09-06 09:04:19.209230: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,8]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,8]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,8]:2021-09-06 09:04:19.220618: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,8]:2021-09-06 09:04:19.220639: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,8]:2021-09-06 09:04:19.220688: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,12]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,12]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,12]:2021-09-06 09:04:19.259405: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,12]:2021-09-06 09:04:19.259428: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,12]:2021-09-06 09:04:19.259476: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:Model: \"model\"\n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:Layer (type) Output Shape Param # Connected to \n", - "Mon Sep 6 09:04:19 2021[1,0]:==================================================================================================\n", - "Mon Sep 6 09:04:19 2021[1,0]:c0 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c1 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c2 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c3 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c4 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c6 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c7 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c8 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c9 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c10 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c11 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c12 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c13 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c14 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c15 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c17 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c18 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c19 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c20 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c21 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c22 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c23 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c24 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c25 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c0 (Embedding) (None, 1, 8) 63303112 ['c0[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c1 (Embedding) (None, 1, 8) 270584 ['c1[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c2 (Embedding) (None, 1, 8) 137112 ['c2[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c3 (Embedding) (None, 1, 8) 58712 ['c3[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c4 (Embedding) (None, 1, 8) 160368 ['c4[0][0]'] \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c6 (Embedding) (None, 1, 8) 56840 ['c6[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c7 (Embedding) (None, 1, 8) 11056 ['c7[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,0]:2021-09-06 09:04:19.311956: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c8 (Embedding) (None, 1, 8) 504 ['c8[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:2021-09-06 09:04:19.311980: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:2021-09-06 09:04:19.312035: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c9 (Embedding) (None, 1, 8) 44432912 ['c9[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c10 (Embedding) (None, 1, 8) 4659752 ['c10[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c11 (Embedding) (None, 1, 8) 1966624 ['c11[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c12 (Embedding) (None, 1, 8) 88 ['c12[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c13 (Embedding) (None, 1, 8) 17672 ['c13[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c14 (Embedding) (None, 1, 8) 85336 ['c14[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c15 (Embedding) (None, 1, 8) 832 ['c15[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c17 (Embedding) (None, 1, 8) 7744 ['c17[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c18 (Embedding) (None, 1, 8) 120 ['c18[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c19 (Embedding) (None, 1, 8) 65327168 ['c19[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c20 (Embedding) (None, 1, 8) 21407520 ['c20[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c21 (Embedding) (None, 1, 8) 57251624 ['c21[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c22 (Embedding) (None, 1, 8) 2420128 ['c22[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c23 (Embedding) (None, 1, 8) 96176 ['c23[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c24 (Embedding) (None, 1, 8) 776 ['c24[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embedding_c25 (Embedding) (None, 1, 8) 280 ['c25[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embeddings_concat (Concatenate (None, 1, 192) 0 ['embedding_c0[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]:) 'embedding_c1[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c2[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c3[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c4[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c6[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c7[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c8[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c9[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c10[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c11[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c12[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c13[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c14[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c15[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c17[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c18[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c19[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c20[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c21[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c22[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c23[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c24[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'embedding_c25[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c5 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:c16 (InputLayer) [(None, 1)] 0 [] \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:embeddings_flatten (Flatten) (None, 192) 0 ['embeddings_concat[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,10]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:one_hot_c5 (CategoryEncoding) (None, 4) 0 ['c5[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,10]: warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:one_hot_c16 (CategoryEncoding) (None, 4) 0 ['c16[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,10]:2021-09-06 09:04:19.331721: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,10]:2021-09-06 09:04:19.331743: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,10]:2021-09-06 09:04:19.331792: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:i0 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i1 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i2 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i3 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i4 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i5 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i6 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i7 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i8 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i9 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i10 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:i11 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,6]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:i12 (InputLayer) [(None, 1)] 0 [] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,6]: warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,6]:2021-09-06 09:04:19.341050: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]:inputs_concat (Concatenate) (None, 213) 0 ['embeddings_flatten[0][0]', \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,6]:2021-09-06 09:04:19.341072: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]: 'one_hot_c5[0][0]', \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,6]:2021-09-06 09:04:19.341122: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,0]: 'one_hot_c16[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i0[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i1[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i2[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i3[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i4[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i5[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i6[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i7[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i8[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i9[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i10[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i11[0][0]', \n", - "Mon Sep 6 09:04:19 2021[1,0]: 'i12[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:batch_normalization (BatchNorm (None, 213) 852 ['inputs_concat[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:alization) \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:dense (Dense) (None, 64) 13696 ['batch_normalization[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:batch_normalization_1 (BatchNo (None, 64) 256 ['dense[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:rmalization) \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:dense_1 (Dense) (None, 64) 4160 ['batch_normalization_1[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:batch_normalization_2 (BatchNo (None, 64) 256 ['dense_1[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:rmalization) \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:dense_2 (Dense) (None, 64) 4160 ['batch_normalization_2[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:batch_normalization_3 (BatchNo (None, 64) 256 ['dense_2[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:rmalization) \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:dense_3 (Dense) (None, 32) 2080 ['batch_normalization_3[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 09:04:19 2021[1,0]:output (Dense) (None, 1) 33 ['dense_3[0][0]'] \n", - "Mon Sep 6 09:04:19 2021[1,0]:==================================================================================================\n", - "Mon Sep 6 09:04:19 2021[1,0]:Total params: 261,698,789\n", - "Mon Sep 6 09:04:19 2021[1,0]:Trainable params: 261,697,979\n", - "Mon Sep 6 09:04:19 2021[1,0]:Non-trainable params: 810\n", - "Mon Sep 6 09:04:19 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:19 2021[1,14]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 09:04:19 2021[1,14]: warnings.warn(\n", - "Mon Sep 6 09:04:19 2021[1,14]:2021-09-06 09:04:19.369461: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:04:19 2021[1,14]:2021-09-06 09:04:19.369483: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:04:19 2021[1,14]:2021-09-06 09:04:19.369533: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 09:04:19 2021[1,2]:2021-09-06 09:04:19.714971: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:19 2021[1,2]:2021-09-06 09:04:19.719251: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:19 2021[1,5]:2021-09-06 09:04:19.726330: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:19 2021[1,5]:2021-09-06 09:04:19.730619: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:19 2021[1,1]:2021-09-06 09:04:19.849382: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:19 2021[1,1]:2021-09-06 09:04:19.852162: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:19 2021[1,9]:2021-09-06 09:04:19.976160: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:19 2021[1,9]:2021-09-06 09:04:19.979006: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,15]:2021-09-06 09:04:20.045149: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,15]:2021-09-06 09:04:20.047988: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,11]:2021-09-06 09:04:20.289338: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,11]:2021-09-06 09:04:20.292348: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,4]:2021-09-06 09:04:20.312786: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,4]:2021-09-06 09:04:20.315716: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,3]:2021-09-06 09:04:20.391964: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,3]:2021-09-06 09:04:20.394729: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,12]:2021-09-06 09:04:20.510335: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,12]:2021-09-06 09:04:20.514644: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,8]:2021-09-06 09:04:20.573990: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,7]:2021-09-06 09:04:20.577094: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,8]:2021-09-06 09:04:20.583448: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,7]:2021-09-06 09:04:20.591334: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,13]:2021-09-06 09:04:20.631241: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,10]:2021-09-06 09:04:20.639145: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,13]:2021-09-06 09:04:20.639919: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,10]:2021-09-06 09:04:20.641938: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,0]:2021-09-06 09:04:20.642622: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,0]:2021-09-06 09:04:20.645310: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,14]:2021-09-06 09:04:20.672134: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,14]:2021-09-06 09:04:20.676577: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:04:20 2021[1,6]:2021-09-06 09:04:20.851373: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:04:20 2021[1,6]:2021-09-06 09:04:20.855704: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:45 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:45 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,0]:NCCL version 2.10.3+cuda11.0\n", - "Mon Sep 6 09:04:46 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:46 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 09:04:46 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 09:04:46 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 09:04:46 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 09:04:46 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Trees [0] 1/-1/-1->13->9 [1] 1/-1/-1->13->9 [2] 1/-1/-1->13->9 [3] 1/-1/-1->13->9 [4] 1/-1/-1->13->9 [5] 1/-1/-1->13->9 [6] 1/-1/-1->13->9 [7] 1/-1/-1->13->9 [8] 1/-1/-1->13->9 [9] 1/-1/-1->13->9 [10] 1/-1/-1->13->9 [11] 1/-1/-1->13->9\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Setting affinity for GPU 4 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Trees [0] 6/-1/-1->12->11 [1] 6/-1/-1->12->11 [2] 6/-1/-1->12->11 [3] 6/-1/-1->12->11 [4] 6/-1/-1->12->11 [5] 6/-1/-1->12->11 [6] 6/-1/-1->12->11 [7] 6/-1/-1->12->11 [8] 6/-1/-1->12->11 [9] 6/-1/-1->12->11 [10] 6/-1/-1->12->11 [11] 6/-1/-1->12->11\n", - "Mon Sep 6 09:04:57 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Setting affinity for GPU 2 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Trees [0] 4/-1/-1->15->3 [1] 4/-1/-1->15->3 [2] 4/-1/-1->15->3 [3] 4/-1/-1->15->3 [4] 4/-1/-1->15->3 [5] 4/-1/-1->15->3 [6] 4/-1/-1->15->3 [7] 4/-1/-1->15->3 [8] 4/-1/-1->15->3 [9] 4/-1/-1->15->3 [10] 4/-1/-1->15->3 [11] 4/-1/-1->15->3\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Setting affinity for GPU 14 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Trees [0] -1/-1/-1->14->4 [1] -1/-1/-1->14->4 [2] -1/-1/-1->14->4 [3] -1/-1/-1->14->4 [4] -1/-1/-1->14->4 [5] -1/-1/-1->14->4 [6] -1/-1/-1->14->4 [7] -1/-1/-1->14->4 [8] -1/-1/-1->14->4 [9] -1/-1/-1->14->4 [10] -1/-1/-1->14->4 [11] -1/-1/-1->14->4\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Setting affinity for GPU 12 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 00/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 01/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 02/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 03/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 04/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 05/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 06/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 07/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 08/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Trees [0] 5/-1/-1->1->13 [1] 5/-1/-1->1->13 [2] 5/-1/-1->1->13 [3] 5/-1/-1->1->13 [4] 5/-1/-1->1->13 [5] 5/-1/-1->1->13 [6] 5/-1/-1->1->13 [7] 5/-1/-1->1->13 [8] 5/-1/-1->1->13 [9] 5/-1/-1->1->13 [10] 5/-1/-1->1->13 [11] 5/-1/-1->1->13\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Setting affinity for GPU 11 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 09/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 10/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 11/12 : 0 8 11 12 6 10 9 13 1 5 2 7 3 15 4 14\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Trees [0] 8/-1/-1->0->-1 [1] 8/-1/-1->0->-1 [2] 8/-1/-1->0->-1 [3] 8/-1/-1->0->-1 [4] 8/-1/-1->0->-1 [5] 8/-1/-1->0->-1 [6] 8/-1/-1->0->-1 [7] 8/-1/-1->0->-1 [8] 8/-1/-1->0->-1 [9] 8/-1/-1->0->-1 [10] 8/-1/-1->0->-1 [11] 8/-1/-1->0->-1\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Trees [0] 12/-1/-1->11->8 [1] 12/-1/-1->11->8 [2] 12/-1/-1->11->8 [3] 12/-1/-1->11->8 [4] 12/-1/-1->11->8 [5] 12/-1/-1->11->8 [6] 12/-1/-1->11->8 [7] 12/-1/-1->11->8 [8] 12/-1/-1->11->8 [9] 12/-1/-1->11->8 [10] 12/-1/-1->11->8 [11] 12/-1/-1->11->8\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Setting affinity for GPU 3 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Trees [0] 7/-1/-1->2->5 [1] 7/-1/-1->2->5 [2] 7/-1/-1->2->5 [3] 7/-1/-1->2->5 [4] 7/-1/-1->2->5 [5] 7/-1/-1->2->5 [6] 7/-1/-1->2->5 [7] 7/-1/-1->2->5 [8] 7/-1/-1->2->5 [9] 7/-1/-1->2->5 [10] 7/-1/-1->2->5 [11] 7/-1/-1->2->5\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Setting affinity for GPU 8 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Trees [0] 2/-1/-1->5->1 [1] 2/-1/-1->5->1 [2] 2/-1/-1->5->1 [3] 2/-1/-1->5->1 [4] 2/-1/-1->5->1 [5] 2/-1/-1->5->1 [6] 2/-1/-1->5->1 [7] 2/-1/-1->5->1 [8] 2/-1/-1->5->1 [9] 2/-1/-1->5->1 [10] 2/-1/-1->5->1 [11] 2/-1/-1->5->1\n", - "Mon Sep 6 09:04:57 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Setting affinity for GPU 10 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Trees [0] 3/-1/-1->7->2 [1] 3/-1/-1->7->2 [2] 3/-1/-1->7->2 [3] 3/-1/-1->7->2 [4] 3/-1/-1->7->2 [5] 3/-1/-1->7->2 [6] 3/-1/-1->7->2 [7] 3/-1/-1->7->2 [8] 3/-1/-1->7->2 [9] 3/-1/-1->7->2 [10] 3/-1/-1->7->2 [11] 3/-1/-1->7->2\n", - "Mon Sep 6 09:04:57 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Setting affinity for GPU 9 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Trees [0] 15/-1/-1->3->7 [1] 15/-1/-1->3->7 [2] 15/-1/-1->3->7 [3] 15/-1/-1->3->7 [4] 15/-1/-1->3->7 [5] 15/-1/-1->3->7 [6] 15/-1/-1->3->7 [7] 15/-1/-1->3->7 [8] 15/-1/-1->3->7 [9] 15/-1/-1->3->7 [10] 15/-1/-1->3->7 [11] 15/-1/-1->3->7\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Setting affinity for GPU 15 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Setting affinity for GPU 1 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Trees [0] 14/-1/-1->4->15 [1] 14/-1/-1->4->15 [2] 14/-1/-1->4->15 [3] 14/-1/-1->4->15 [4] 14/-1/-1->4->15 [5] 14/-1/-1->4->15 [6] 14/-1/-1->4->15 [7] 14/-1/-1->4->15 [8] 14/-1/-1->4->15 [9] 14/-1/-1->4->15 [10] 14/-1/-1->4->15 [11] 14/-1/-1->4->15\n", - "Mon Sep 6 09:04:57 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Setting affinity for GPU 13 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Trees [0] 10/-1/-1->6->12 [1] 10/-1/-1->6->12 [2] 10/-1/-1->6->12 [3] 10/-1/-1->6->12 [4] 10/-1/-1->6->12 [5] 10/-1/-1->6->12 [6] 10/-1/-1->6->12 [7] 10/-1/-1->6->12 [8] 10/-1/-1->6->12 [9] 10/-1/-1->6->12 [10] 10/-1/-1->6->12 [11] 10/-1/-1->6->12\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Setting affinity for GPU 6 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Trees [0] 11/-1/-1->8->0 [1] 11/-1/-1->8->0 [2] 11/-1/-1->8->0 [3] 11/-1/-1->8->0 [4] 11/-1/-1->8->0 [5] 11/-1/-1->8->0 [6] 11/-1/-1->8->0 [7] 11/-1/-1->8->0 [8] 11/-1/-1->8->0 [9] 11/-1/-1->8->0 [10] 11/-1/-1->8->0 [11] 11/-1/-1->8->0\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Setting affinity for GPU 0 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Trees [0] 13/-1/-1->9->10 [1] 13/-1/-1->9->10 [2] 13/-1/-1->9->10 [3] 13/-1/-1->9->10 [4] 13/-1/-1->9->10 [5] 13/-1/-1->9->10 [6] 13/-1/-1->9->10 [7] 13/-1/-1->9->10 [8] 13/-1/-1->9->10 [9] 13/-1/-1->9->10 [10] 13/-1/-1->9->10 [11] 13/-1/-1->9->10\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Setting affinity for GPU 5 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Trees [0] 9/-1/-1->10->6 [1] 9/-1/-1->10->6 [2] 9/-1/-1->10->6 [3] 9/-1/-1->10->6 [4] 9/-1/-1->10->6 [5] 9/-1/-1->10->6 [6] 9/-1/-1->10->6 [7] 9/-1/-1->10->6 [8] 9/-1/-1->10->6 [9] 9/-1/-1->10->6 [10] 9/-1/-1->10->6 [11] 9/-1/-1->10->6\n", - "Mon Sep 6 09:04:57 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Setting affinity for GPU 7 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 00 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 00 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 00 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 00 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 00 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 00 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 00 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 01 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 01 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 01 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 01 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 01 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 01 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 01 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 02 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 02 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 02 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 02 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 02 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 02 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 02 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 03 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 03 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 03 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 03 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 03 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 03 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 03 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 04 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 04 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 04 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 04 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 04 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 04 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 04 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 05 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 05 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 05 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 05 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 05 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 05 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 05 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 06 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 06 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 06 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 06 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 06 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 06 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 06 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 07 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 07 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 07 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 07 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 07 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 07 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 07 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 08 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 08 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 08 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 08 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 08 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 08 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 08 : 2[b7000] -> 7[b9000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 09 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 09 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 09 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 09 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 09 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 09 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 09 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 10 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 10 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 10 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 10 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 10 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 10 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 10 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 11 : 15[e5000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 11 : 6[5c000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 11 : 9[59000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 11 : 8[34000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 11 : 11[3b000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 11 : 14[e0000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 11 : 2[b7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 00 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 00 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 00 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 01 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 01 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 01 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 02 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 02 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 02 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 03 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 03 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 03 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 04 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 04 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 05 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 04 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 05 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 05 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 06 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 06 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 07 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 06 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 07 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 07 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 08 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 08 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 08 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 09 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 09 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 09 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 10 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 10 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 10 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 11 : 13[57000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 11 : 1[be000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 11 : 3[e7000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 00 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 01 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:57 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 02 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 03 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 00 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 04 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 01 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 05 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 02 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 06 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 03 : 10[5e000] -> 9[59000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 07 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 04 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 08 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 05 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 09 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 06 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 00 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 10 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 07 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 01 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 11 : 12[39000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 08 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 02 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 09 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 03 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 10 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 04 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 11 : 10[5e000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 05 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 06 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 00 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 07 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 01 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 08 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 02 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 09 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 03 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 10 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 04 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 11 : 7[b9000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 05 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 06 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 00 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 07 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 01 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 08 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 02 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 09 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 03 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 10 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 04 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Channel 11 : 0[36000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 05 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 06 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 07 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 08 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 09 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 10 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 11 : 4[e2000] -> 14[e0000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 00 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 01 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 02 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 03 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 00 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 04 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 01 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 05 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 02 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 06 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 03 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 07 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 04 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 08 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 05 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 09 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 06 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 00 : 6[5c000] -> 12[39000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 10 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 07 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 01 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 11 : 5[bc000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 08 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 02 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 09 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 03 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 10 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 04 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Channel 11 : 11[3b000] -> 8[34000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 05 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 06 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 07 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 08 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 09 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 10 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Channel 11 : 6[5c000] -> 12[39000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 00 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 00 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 00 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 01 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 01 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 01 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 02 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 02 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 02 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 00 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 03 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 03 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 03 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 01 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 04 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 04 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 04 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 02 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 05 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 05 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 05 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 06 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 03 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 06 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 06 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 04 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 07 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 07 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 07 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 05 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 08 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 08 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 08 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 06 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 09 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 09 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 00 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 09 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 07 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 10 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 10 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 01 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 10 : 12[39000] -> 11[3b000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 08 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Channel 11 : 1[be000] -> 13[57000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Channel 11 : 15[e5000] -> 3[e7000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 02 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Channel 11 : 12[39000] -> 11[3b000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 09 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 03 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 10 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 00 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 04 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 01 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Channel 11 : 13[57000] -> 9[59000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 05 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 02 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 06 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 03 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 00 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 07 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 04 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 01 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 08 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 05 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 02 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 09 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 06 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 03 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 10 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 07 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 04 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Channel 11 : 14[e0000] -> 4[e2000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 08 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 05 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 09 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 06 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 00 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 10 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 07 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 01 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Channel 11 : 9[59000] -> 10[5e000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 08 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 02 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 09 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 03 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 10 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 04 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Channel 11 : 2[b7000] -> 5[bc000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 05 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 06 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 00 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 07 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 01 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 08 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 02 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 09 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 03 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 10 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 00 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 04 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 01 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Channel 11 : 8[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 05 : 4[e2000] -> 15[e5000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 02 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 06 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 03 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 00 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 07 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 04 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 01 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 08 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 05 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 00 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 02 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 09 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 06 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 01 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 03 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 10 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 07 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 04 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 02 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Channel 11 : 4[e2000] -> 15[e5000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 08 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 05 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 03 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 09 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 06 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 04 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 10 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 07 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 05 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Channel 11 : 10[5e000] -> 6[5c000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 08 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 06 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 09 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 07 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 10 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 08 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Channel 11 : 5[bc000] -> 1[be000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 09 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 10 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:58 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Channel 11 : 3[e7000] -> 7[b9000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 00 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 01 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 02 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 03 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 04 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 05 : 7[b9000] -> 2[b7000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:04:59 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 06 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 07 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 08 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 09 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 10 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Channel 11 : 7[b9000] -> 2[b7000] via P2P/IPC\n", - "Mon Sep 6 09:04:59 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 09:04:59 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 09:04:59 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 09:04:59 2021[1,4]:dgx2h0194:79732:80427 [0] NCCL INFO comm 0x7f159c62d200 rank 4 nranks 16 cudaDev 0 busId e2000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,7]:dgx2h0194:79740:80605 [0] NCCL INFO comm 0x7fec6462ce60 rank 7 nranks 16 cudaDev 0 busId b9000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,15]:dgx2h0194:79748:80424 [0] NCCL INFO comm 0x7fbe3862ca40 rank 15 nranks 16 cudaDev 0 busId e5000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,12]:dgx2h0194:79745:80741 [0] NCCL INFO comm 0x7f00e462e120 rank 12 nranks 16 cudaDev 0 busId 39000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,2]:dgx2h0194:79722:80271 [0] NCCL INFO comm 0x7f9c0062da40 rank 2 nranks 16 cudaDev 0 busId b7000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,8]:dgx2h0194:79741:80747 [0] NCCL INFO comm 0x7f3e2462d9e0 rank 8 nranks 16 cudaDev 0 busId 34000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,10]:dgx2h0194:79743:80602 [0] NCCL INFO comm 0x7f50ac62cfb0 rank 10 nranks 16 cudaDev 0 busId 5e000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,11]:dgx2h0194:79744:80434 [0] NCCL INFO comm 0x7f47c062cad0 rank 11 nranks 16 cudaDev 0 busId 3b000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,5]:dgx2h0194:79738:80437 [0] NCCL INFO comm 0x7f7c2c62d050 rank 5 nranks 16 cudaDev 0 busId bc000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,6]:dgx2h0194:79739:80608 [0] NCCL INFO comm 0x7f10a862d190 rank 6 nranks 16 cudaDev 0 busId 5c000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,1]:dgx2h0194:79717:80738 [0] NCCL INFO comm 0x7f635462cf70 rank 1 nranks 16 cudaDev 0 busId be000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO comm 0x7fa9b065f3d0 rank 0 nranks 16 cudaDev 0 busId 36000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,9]:dgx2h0194:79742:80744 [0] NCCL INFO comm 0x7f330c62cf00 rank 9 nranks 16 cudaDev 0 busId 59000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,3]:dgx2h0194:79727:80587 [0] NCCL INFO comm 0x7f786062ca30 rank 3 nranks 16 cudaDev 0 busId e7000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,13]:dgx2h0194:79746:80607 [0] NCCL INFO comm 0x7ff78062ce20 rank 13 nranks 16 cudaDev 0 busId 57000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,14]:dgx2h0194:79747:80615 [0] NCCL INFO comm 0x7fa09462d170 rank 14 nranks 16 cudaDev 0 busId e0000 - Init COMPLETE\n", - "Mon Sep 6 09:04:59 2021[1,0]:dgx2h0194:79712:80584 [0] NCCL INFO Launch mode Parallel\n", - "Mon Sep 6 09:04:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:08 2021[1,3]:2021-09-06 09:05:08.906524: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,3]:2021-09-06 09:05:08.906568: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,9]:2021-09-06 09:05:08.907713: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,9]:2021-09-06 09:05:08.907738: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,11]:2021-09-06 09:05:08.915421: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,11]:2021-09-06 09:05:08.915453: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,1]:2021-09-06 09:05:08.920370: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,1]:2021-09-06 09:05:08.920406: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,15]:2021-09-06 09:05:08.931629: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,15]:2021-09-06 09:05:08.931668: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,0]:2021-09-06 09:05:08.935354: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,0]:2021-09-06 09:05:08.935382: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,4]:2021-09-06 09:05:08.941341: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,4]:2021-09-06 09:05:08.941368: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,6]:2021-09-06 09:05:08.945179: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,6]:2021-09-06 09:05:08.945222: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,12]:2021-09-06 09:05:08.953442: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,12]:2021-09-06 09:05:08.953478: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,5]:2021-09-06 09:05:08.955782: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,5]:2021-09-06 09:05:08.955817: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,13]:2021-09-06 09:05:08.955878: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,13]:2021-09-06 09:05:08.955902: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,2]:2021-09-06 09:05:08.964502: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,2]:2021-09-06 09:05:08.964533: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,10]:2021-09-06 09:05:08.966637: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,10]:2021-09-06 09:05:08.966668: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,7]:2021-09-06 09:05:08.975908: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,7]:2021-09-06 09:05:08.975936: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,8]:2021-09-06 09:05:08.977191: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,8]:2021-09-06 09:05:08.977212: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:08 2021[1,14]:2021-09-06 09:05:08.977981: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 09:05:08 2021[1,14]:2021-09-06 09:05:08.978007: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.305228: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.305433: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.305459: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.305543: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.306514: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.306618: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.306708: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.307508: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.309214: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.309215: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.309278: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.309264: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.309370: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.310410: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.310457: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.310481: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.310655: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.311490: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.316781: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.319146: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 1/4000 [..............................]Mon Sep 6 09:04:59 2021[1,0]: - ETA: 31:27:06 - loss: 0.9112 - auc: 0.4892Mon Sep 6 09:05:10 2021[1,0]:\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.342218: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.342267: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.342284: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.342547: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.342667: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.343662: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.343704: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.344116: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.344609: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.345052: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.345700: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.346509: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.358042: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2649 callback api events and 2583 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.358854: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2649 callback api events and 2583 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.359228: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.360356: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.364826: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.367892: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.368670: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2652 callback api events and 2586 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.369775: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2649 callback api events and 2583 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.373559: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2651 callback api events and 2585 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.383506: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.392125: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.392648: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.393439: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.393559: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.400431: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.402509: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.402749: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.405715: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.410689: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.415497: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.415594: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.415980: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.419823: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.424162: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.426899: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.436674: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.437051: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.437544: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2648 callback api events and 2582 activity events. \n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.437594: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.440492: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.452744: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,2]:\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.453531: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.454222: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,13]:\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.454482: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,7]:\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.467085: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:10 2021[1,5]:\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.468653: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,9]:\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.469858: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,6]:\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.471366: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,15]:\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.477411: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,4]:\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.478317: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.479776: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,10]:\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.480068: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.481862: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.482391: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.483605: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,3]:\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.485892: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,12]:\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.488111: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,1]:\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.488549: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,0]:\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.492599: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,11]:\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.495745: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.497173: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.498271: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.502046: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.505250: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,8]:\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.505717: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.510133: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.511769: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.513653: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.516357: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.516749: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.520974: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.533211: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,14]:\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.533268: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.543716: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,2]:\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.544599: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,13]:\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.545527: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,7]:\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.551058: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.551684: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.552556: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,2]:2021-09-06 09:05:10.554892: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,2]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:10 2021[1,2]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,2]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,2]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,2]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,2]:\n", - "Mon Sep 6 09:05:10 2021[1,13]:2021-09-06 09:05:10.555408: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,13]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,13]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,13]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,13]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,13]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,13]:\n", - "Mon Sep 6 09:05:10 2021[1,7]:2021-09-06 09:05:10.556035: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,7]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,7]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,7]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,7]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,7]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,7]:\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.559516: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,9]:\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.560753: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,5]:\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.562556: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,6]:\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.566678: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.568086: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.569781: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,9]:2021-09-06 09:05:10.570665: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,9]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,9]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,9]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,9]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,9]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,9]:\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.572285: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,5]:2021-09-06 09:05:10.572728: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,5]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,5]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,5]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,5]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,5]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,5]:\n", - "Mon Sep 6 09:05:10 2021[1,6]:2021-09-06 09:05:10.573924: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,6]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,6]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,6]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,6]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,6]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,6]:\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.578011: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,12]:\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.580067: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,3]:\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.581250: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,4]:\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.581588: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,0]:\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.585279: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.585794: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,11]:\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.586581: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,15]:\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.587215: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,12]:2021-09-06 09:05:10.589198: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,12]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,12]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,12]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,12]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,12]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,12]:\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.589550: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.590763: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,3]:2021-09-06 09:05:10.591167: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,3]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,3]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,3]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,3]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,3]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,3]:\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.593091: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,0]:2021-09-06 09:05:10.594288: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,0]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,0]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,0]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,0]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,0]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,0]:\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.596368: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,4]:2021-09-06 09:05:10.596671: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,4]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,4]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,4]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,4]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,4]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,4]:\n", - "Mon Sep 6 09:05:10 2021[1,11]:2021-09-06 09:05:10.597264: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,11]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,11]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,11]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,11]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,11]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,11]:\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.598865: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,10]:\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.601237: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,1]:\n", - "Mon Sep 6 09:05:10 2021[1,15]:2021-09-06 09:05:10.601247: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,15]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,15]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,15]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,15]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,15]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,15]:\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.601392: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:10 2021[1,8]:\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.609086: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.609124: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.609444: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,8]:2021-09-06 09:05:10.614234: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,8]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,8]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,8]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,8]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,8]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,8]:\n", - "Mon Sep 6 09:05:10 2021[1,10]:2021-09-06 09:05:10.614705: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,10]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,10]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,10]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,10]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,10]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,10]:\n", - "Mon Sep 6 09:05:10 2021[1,1]:2021-09-06 09:05:10.617210: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,1]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,1]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,1]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,1]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,1]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,1]:\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.677166: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,14]:\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.684214: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 09:05:10 2021[1,14]:2021-09-06 09:05:10.687649: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_09_05_10\n", - "Mon Sep 6 09:05:10 2021[1,14]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.xplane.pb\n", - "Mon Sep 6 09:05:10 2021[1,14]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 09:05:10 2021[1,14]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 09:05:10 2021[1,14]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,14]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_09_05_10/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 09:05:10 2021[1,14]:\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 5/4000 [..............................]Mon Sep 6 09:05:11 2021[1,0]: - ETA: 3:15:09 - loss: 0.8028 - auc: 0.4982Mon Sep 6 09:05:11 2021[1,0]Mon Sep 6 09:05:10 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:05:11 2021[1,12]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1455s vs `on_train_batch_begin` time: 0.1987s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,12]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1455s vs `on_train_batch_end` time: 1.6635s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,3]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1708s vs `on_train_batch_begin` time: 0.2090s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,3]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1708s vs `on_train_batch_end` time: 1.6582s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,10]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1720s vs `on_train_batch_end` time: 1.6715s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,7]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1905s vs `on_train_batch_end` time: 1.6623s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,8]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1486s vs `on_train_batch_begin` time: 0.1849s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,13]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1773s vs `on_train_batch_begin` time: 0.2086s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,13]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1773s vs `on_train_batch_end` time: 1.6576s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,5]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1958s vs `on_train_batch_end` time: 1.6611s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,1]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1316s vs `on_train_batch_begin` time: 0.2118s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,1]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1316s vs `on_train_batch_end` time: 1.6669s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,8]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1486s vs `on_train_batch_end` time: 1.6714s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,4]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1880s vs `on_train_batch_end` time: 1.6633s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,6]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1824s vs `on_train_batch_end` time: 1.6600s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,2]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1603s vs `on_train_batch_begin` time: 0.2171s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,11]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1957s vs `on_train_batch_end` time: 1.6587s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,2]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1603s vs `on_train_batch_end` time: 1.6624s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,15]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1938s vs `on_train_batch_end` time: 1.6640s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,9]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1979s vs `on_train_batch_end` time: 1.6555s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,14]:WARNING:tensorflow:Callback method `on_train_batch_begin` is slow compared to the batch time (batch time: 0.1465s vs `on_train_batch_begin` time: 0.1744s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,14]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1465s vs `on_train_batch_end` time: 1.6863s). Check your callbacks.\n", - "Mon Sep 6 09:05:11 2021[1,0]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.1925s vs `on_train_batch_end` time: 1.6647s). Check your callbacks.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 212/4000 [>.............................]Mon Sep 6 09:05:52 2021[1,0]: - ETA: 15:58 - loss: 0.1657 - auc: 0.6865Mon Sep 6 09:05:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 513/4000 [==>...........................]Mon Sep 6 09:06:52 2021[1,0]: - ETA: 12:52 - loss: 0.1432 - auc: 0.7375Mon Sep 6 09:06:52 2021[1,0] (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 799/4000 [====>.........................]Mon Sep 6 09:07:50 2021[1,0]: - ETA: 11:25 - loss: 0.1371 - auc: 0.7529Mon Sep 6 09:07:52 2021[1,0] (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1102/4000 [=======>......................]Mon Sep 6 09:08:52 2021[1,0]: - ETA: 10:14 - loss: 0.1339 - auc: 0.7614Mon Sep 6 09:08:52 2021[1,0] (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1398/4000 [=========>....................]Mon Sep 6 09:09:49 2021[1,0]: - ETA: 9:01 - loss: 0.1321 - auc: 0.7666Mon Sep 6 09:09:50 2021[1,0]3Mon Sep 6 09:09:47 2021[1,0]>\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1702/4000 [===========>..................]Mon Sep 6 09:10:52 2021[1,0]: - ETA: 7:57 - loss: 0.1308 - auc: 0.7706Mon Sep 6 09:10:52 2021[1,0]5Mon Sep 6 09:10:52 2021[1,0]Mon Sep 6 09:10:08 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 09:11:50 2021[1,0]:1998/4000 [=============>................] - ETA: 6:52 - loss: 0.1299 - auc: 0.7735Mon Sep 6 09:11:50 2021[1,0]1Mon Sep 6 09:11:42 2021[1,0]Mon Sep 6 09:10:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2300/4000 [================>.............]Mon Sep 6 09:12:52 2021[1,0]: - ETA: 5:50 - loss: 0.1292 - auc: 0.7758Mon Sep 6 09:12:52 2021[1,0]8Mon Sep 6 09:12:52 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2599/4000 [==================>...........]Mon Sep 6 09:13:50 2021[1,0]: - ETA: 4:46 - loss: 0.1286 - auc: 0.7776Mon Sep 6 09:13:53 2021[1,0]6Mon Sep 6 09:13:50 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2910/4000 [====================>.........]Mon Sep 6 09:14:52 2021[1,0]: - ETA: 3:42 - loss: 0.1282 - auc: 0.7792Mon Sep 6 09:14:53 2021[1,0]2Mon Sep 6 09:14:52 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3199/4000 [======================>.......]Mon Sep 6 09:15:49 2021[1,0]: - ETA: 2:42 - loss: 0.1278 - auc: 0.7805Mon Sep 6 09:15:51 2021[1,0]5Mon Sep 6 09:15:48 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3512/4000 [=========================>....]Mon Sep 6 09:16:52 2021[1,0]: - ETA: 1:39 - loss: 0.1274 - auc: 0.7816Mon Sep 6 09:16:53 2021[1,0]6Mon Sep 6 09:16:52 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3799/4000 [===========================>..]Mon Sep 6 09:17:50 2021[1,0]: - ETA: 40s - loss: 0.1272 - auc: 0.7826Mon Sep 6 09:17:52 2021[1,0]\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4000/4000 [==============================]Mon Sep 6 09:18:36 2021[1,0]: - 845s 204ms/step - loss: 0.1270 - auc: 0.7832 - val_loss: 0.1273 - val_auc: 0.7933 6 09:18:22 2021[1,0]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Best Loss: 0.127242\n" - ] - } - ], - "source": [ - "main()" - ] - }, - { - "cell_type": "markdown", - "id": "5a1c01ad", - "metadata": {}, - "source": [ - "## Use Petastorm\n", - "\n", - "Here we set `--dataloader` to `petastorm` to force Petastorm run." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "fee60d10", - "metadata": {}, - "outputs": [], - "source": [ - "def main_petastorm():\n", - " parser = argparse.ArgumentParser(description='Criteo Spark Keras Training Example',\n", - " formatter_class=argparse.ArgumentDefaultsHelpFormatter)\n", - " parser.add_argument('--data-dir', default='file:///opt/data/criteo/parquet',\n", - " help='location of the transformed Criteo dataset in Parquet format')\n", - " parser.add_argument('--logs-dir', default='/opt/experiments/criteo', help='location of TensorFlow logs')\n", - " parser.add_argument('--dataloader', default=PETASTORM_DATALOADER,\n", - " choices=[PETASTORM_DATALOADER, NVTABULAR_DATALOADER],\n", - " help='dataloader to use')\n", - " parser.add_argument('--num-proc', type=int, default=1, help='number of worker processes for training')\n", - " parser.add_argument('--learning-rate', type=float, default=0.0001, help='initial learning rate')\n", - " parser.add_argument('--batch-size', type=int, default=64 * 1024, help='batch size')\n", - " parser.add_argument('--epochs', type=int, default=3, help='number of epochs to train')\n", - " parser.add_argument('--local-checkpoint-file', default='checkpoint', help='model checkpoint')\n", - " args = parser.parse_args(args=['--num-proc', '16', '--data-dir', 'file:///raid/spark-team/criteo/parquet', \n", - " '--dataloader', 'petastorm', '--learning-rate', '0.001',\n", - " '--batch-size', '65535','--epochs', '1', '--logs-dir', 'tf_logs',\n", - " '--local-checkpoint-file', 'ckpt_file'])\n", - " \n", - "\n", - " dimensions = get_category_dimensions(spark, args.data_dir)\n", - "\n", - " train_df = spark.read.parquet(f'{args.data_dir}/train')\n", - " val_df = spark.read.parquet(f'{args.data_dir}/val')\n", - " test_df = spark.read.parquet(f'{args.data_dir}/test')\n", - " train_rows, val_rows, test_rows = train_df.count(), val_df.count(), test_df.count()\n", - " print('Training: %d' % train_rows)\n", - " print('Validation: %d' % val_rows)\n", - " print('Test: %d' % test_rows)\n", - "\n", - " train(dimensions, train_rows, val_rows, args)\n", - "\n", - " spark.stop()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1cb35049", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "21/09/06 11:44:44 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'.\n", - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'c0': '7912888',\n", - " 'c1': '33822',\n", - " 'c10': '582468',\n", - " 'c11': '245827',\n", - " 'c12': '10',\n", - " 'c13': '2208',\n", - " 'c14': '10666',\n", - " 'c15': '103',\n", - " 'c16': '3',\n", - " 'c17': '967',\n", - " 'c18': '14',\n", - " 'c19': '8165895',\n", - " 'c2': '17138',\n", - " 'c20': '2675939',\n", - " 'c21': '7156452',\n", - " 'c22': '302515',\n", - " 'c23': '12021',\n", - " 'c24': '96',\n", - " 'c25': '34',\n", - " 'c3': '7338',\n", - " 'c4': '20045',\n", - " 'c5': '3',\n", - " 'c6': '7104',\n", - " 'c7': '1381',\n", - " 'c8': '62',\n", - " 'c9': '5554113'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Training: 4195197692\n", - "Validation: 89137318\n", - "Test: 89137319\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Checking whether extension tensorflow was built with MPI.\n", - "Extension tensorflow was built with MPI.\n", - "mpirun --allow-run-as-root --tag-output -np 16 -H dgx2h0194-a1adff968d508e8d1142986f3e2c42dc:16 -bind-to none -map-by slot -mca pml ob1 -mca btl ^openib --timestamp-output -mca btl_tcp_if_include enp134s0f0 -x NCCL_IB_GID_INDEX=3 -x NCCL_DEBUG=INFO -mca plm_rsh_agent \"/home/ngc-auth-ldap-allxu/miniconda3/bin/python -m horovod.spark.driver.mpirun_rsh gAWVcAEAAAAAAAB9lCiMAmxvlF2UjAkxMjcuMC4wLjGUTU5+hpRhjAdlbnA1M3MwlF2UjAwxMC4xNDguMzAuNTmUTU5+hpRhjAdlbnA1OHMwlF2UjAwxMC4xNDguOTQuNTmUTU5+hpRhjAdlbnA4OHMwlF2UjAwxMC4xNDkuMzAuMzSUTU5+hpRhjAdlbnA5M3MwlF2UjAwxMC4xNDkuOTQuNTeUTU5+hpRhjAplbnAxMzRzMGYwlF2UjAsxMC4xNTAuMzAuMpRNTn6GlGGMCGVucDE4NHMwlF2UjA0xMC4xNDguMTU4LjU5lE1OfoaUYYwIZW5wMTg5czCUXZSMDTEwLjE0OC4yMjIuNTmUTU5+hpRhjAhlbnAyMjVzMJRdlIwNMTAuMTQ5LjE1OC41N5RNTn6GlGGMCGVucDIzMHMwlF2UjA0xMC4xNDkuMjIyLjU3lE1OfoaUYYwHZG9ja2VyMJRdlIwKMTcyLjE3LjAuMZRNTn6GlGF1Lg== gAWVAwMAAAAAAACMI2hvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnNldHRpbmdzlIwIU2V0dGluZ3OUk5QpgZR9lCiMCG51bV9wcm9jlEsQjAd2ZXJib3NllEsCjAhzc2hfcG9ydJROjBFzc2hfaWRlbnRpdHlfZmlsZZROjA5leHRyYV9tcGlfYXJnc5SMOS1tY2EgYnRsX3RjcF9pZl9pbmNsdWRlIGVucDEzNHMwZjAgLXggTkNDTF9JQl9HSURfSU5ERVg9M5SMCHRjcF9mbGFnlE6MDGJpbmRpbmdfYXJnc5ROjANrZXmUTowNc3RhcnRfdGltZW91dJSMImhvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnRpbWVvdXSUjAdUaW1lb3V0lJOUKYGUfZQojAhfdGltZW91dJRNWAKMC190aW1lb3V0X2F0lEdB2E2AYtTXh4wIX21lc3NhZ2WUWA4BAABUaW1lZCBvdXQgd2FpdGluZyBmb3Ige2FjdGl2aXR5fS4gUGxlYXNlIGNoZWNrIHRoYXQgeW91IGhhdmUgZW5vdWdoIHJlc291cmNlcyB0byBydW4gYWxsIEhvcm92b2QgcHJvY2Vzc2VzLiBFYWNoIEhvcm92b2QgcHJvY2VzcyBydW5zIGluIGEgU3BhcmsgdGFzay4gWW91IG1heSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzdGFydF90aW1lb3V0IHBhcmFtZXRlciB0byBhIGxhcmdlciB2YWx1ZSBpZiB5b3VyIFNwYXJrIHJlc291cmNlcyBhcmUgYWxsb2NhdGVkIG9uLWRlbWFuZC6UdWKMD291dHB1dF9maWxlbmFtZZROjA1ydW5fZnVuY19tb2RllIiMBG5pY3OUfZSMB2VsYXN0aWOUiYwccHJlZml4X291dHB1dF93aXRoX3RpbWVzdGFtcJSIjAVob3N0c5SMLWRneDJoMDE5NC1hMWFkZmY5NjhkNTA4ZThkMTE0Mjk4NmYzZTJjNDJkYzoxNpR1Yi4=\" /home/ngc-auth-ldap-allxu/miniconda3/bin/python -m horovod.spark.task.mpirun_exec_fn gAWVcAEAAAAAAAB9lCiMAmxvlF2UjAkxMjcuMC4wLjGUTU5+hpRhjAdlbnA1M3MwlF2UjAwxMC4xNDguMzAuNTmUTU5+hpRhjAdlbnA1OHMwlF2UjAwxMC4xNDguOTQuNTmUTU5+hpRhjAdlbnA4OHMwlF2UjAwxMC4xNDkuMzAuMzSUTU5+hpRhjAdlbnA5M3MwlF2UjAwxMC4xNDkuOTQuNTeUTU5+hpRhjAplbnAxMzRzMGYwlF2UjAsxMC4xNTAuMzAuMpRNTn6GlGGMCGVucDE4NHMwlF2UjA0xMC4xNDguMTU4LjU5lE1OfoaUYYwIZW5wMTg5czCUXZSMDTEwLjE0OC4yMjIuNTmUTU5+hpRhjAhlbnAyMjVzMJRdlIwNMTAuMTQ5LjE1OC41N5RNTn6GlGGMCGVucDIzMHMwlF2UjA0xMC4xNDkuMjIyLjU3lE1OfoaUYYwHZG9ja2VyMJRdlIwKMTcyLjE3LjAuMZRNTn6GlGF1Lg== gAWVkwkAAAAAAACMI2hvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnNldHRpbmdzlIwIU2V0dGluZ3OUk5QpgZR9lCiMCG51bV9wcm9jlEsQjAd2ZXJib3NllEsCjAhzc2hfcG9ydJROjBFzc2hfaWRlbnRpdHlfZmlsZZROjA5leHRyYV9tcGlfYXJnc5RYxgYAAC1tY2EgYnRsX3RjcF9pZl9pbmNsdWRlIGVucDEzNHMwZjAgLXggTkNDTF9JQl9HSURfSU5ERVg9MyAteCBOQ0NMX0RFQlVHPUlORk8gLW1jYSBwbG1fcnNoX2FnZW50ICIvaG9tZS9uZ2MtYXV0aC1sZGFwLWFsbHh1L21pbmljb25kYTMvYmluL3B5dGhvbiAtbSBob3Jvdm9kLnNwYXJrLmRyaXZlci5tcGlydW5fcnNoIGdBV1ZjQUVBQUFBQUFBQjlsQ2lNQW14dmxGMlVqQWt4TWpjdU1DNHdMakdVVFU1K2hwUmhqQWRsYm5BMU0zTXdsRjJVakF3eE1DNHhORGd1TXpBdU5UbVVUVTUraHBSaGpBZGxibkExT0hNd2xGMlVqQXd4TUM0eE5EZ3VPVFF1TlRtVVRVNStocFJoakFkbGJuQTRPSE13bEYyVWpBd3hNQzR4TkRrdU16QXVNelNVVFU1K2hwUmhqQWRsYm5BNU0zTXdsRjJVakF3eE1DNHhORGt1T1RRdU5UZVVUVTUraHBSaGpBcGxibkF4TXpSek1HWXdsRjJVakFzeE1DNHhOVEF1TXpBdU1wUk5UbjZHbEdHTUNHVnVjREU0TkhNd2xGMlVqQTB4TUM0eE5EZ3VNVFU0TGpVNWxFMU9mb2FVWVl3SVpXNXdNVGc1Y3pDVVhaU01EVEV3TGpFME9DNHlNakl1TlRtVVRVNStocFJoakFobGJuQXlNalZ6TUpSZGxJd05NVEF1TVRRNUxqRTFPQzQxTjVSTlRuNkdsR0dNQ0dWdWNESXpNSE13bEYyVWpBMHhNQzR4TkRrdU1qSXlMalUzbEUxT2ZvYVVZWXdIWkc5amEyVnlNSlJkbEl3S01UY3lMakUzTGpBdU1aUk5UbjZHbEdGMUxnPT0gZ0FXVkF3TUFBQUFBQUFDTUkyaHZjbTkyYjJRdWNuVnVibVZ5TG1OdmJXMXZiaTUxZEdsc0xuTmxkSFJwYm1kemxJd0lVMlYwZEdsdVozT1VrNVFwZ1pSOWxDaU1DRzUxYlY5d2NtOWpsRXNRakFkMlpYSmliM05sbEVzQ2pBaHpjMmhmY0c5eWRKUk9qQkZ6YzJoZmFXUmxiblJwZEhsZlptbHNaWlJPakE1bGVIUnlZVjl0Y0dsZllYSm5jNVNNT1MxdFkyRWdZblJzWDNSamNGOXBabDlwYm1Oc2RXUmxJR1Z1Y0RFek5ITXdaakFnTFhnZ1RrTkRURjlKUWw5SFNVUmZTVTVFUlZnOU01U01DSFJqY0Y5bWJHRm5sRTZNREdKcGJtUnBibWRmWVhKbmM1Uk9qQU5yWlhtVVRvd05jM1JoY25SZmRHbHRaVzkxZEpTTUltaHZjbTkyYjJRdWNuVnVibVZ5TG1OdmJXMXZiaTUxZEdsc0xuUnBiV1Z2ZFhTVWpBZFVhVzFsYjNWMGxKT1VLWUdVZlpRb2pBaGZkR2x0Wlc5MWRKUk5XQUtNQzE5MGFXMWxiM1YwWDJGMGxFZEIyRTJBWXRUWGg0d0lYMjFsYzNOaFoyV1VXQTRCQUFCVWFXMWxaQ0J2ZFhRZ2QyRnBkR2x1WnlCbWIzSWdlMkZqZEdsMmFYUjVmUzRnVUd4bFlYTmxJR05vWldOcklIUm9ZWFFnZVc5MUlHaGhkbVVnWlc1dmRXZG9JSEpsYzI5MWNtTmxjeUIwYnlCeWRXNGdZV3hzSUVodmNtOTJiMlFnY0hKdlkyVnpjMlZ6TGlCRllXTm9JRWh2Y205MmIyUWdjSEp2WTJWemN5QnlkVzV6SUdsdUlHRWdVM0JoY21zZ2RHRnpheTRnV1c5MUlHMWhlU0J1WldWa0lIUnZJR2x1WTNKbFlYTmxJSFJvWlNCemRHRnlkRjkwYVcxbGIzVjBJSEJoY21GdFpYUmxjaUIwYnlCaElHeGhjbWRsY2lCMllXeDFaU0JwWmlCNWIzVnlJRk53WVhKcklISmxjMjkxY21ObGN5QmhjbVVnWVd4c2IyTmhkR1ZrSUc5dUxXUmxiV0Z1WkM2VWRXS01EMjkxZEhCMWRGOW1hV3hsYm1GdFpaUk9qQTF5ZFc1ZlpuVnVZMTl0YjJSbGxJaU1CRzVwWTNPVWZaU01CMlZzWVhOMGFXT1VpWXdjY0hKbFptbDRYMjkxZEhCMWRGOTNhWFJvWDNScGJXVnpkR0Z0Y0pTSWpBVm9iM04wYzVTTUxXUm5lREpvTURFNU5DMWhNV0ZrWm1ZNU5qaGtOVEE0WlRoa01URTBNams0Tm1ZelpUSmpOREprWXpveE5wUjFZaTQ9IpSMCHRjcF9mbGFnlE6MDGJpbmRpbmdfYXJnc5ROjANrZXmUTowNc3RhcnRfdGltZW91dJSMImhvcm92b2QucnVubmVyLmNvbW1vbi51dGlsLnRpbWVvdXSUjAdUaW1lb3V0lJOUKYGUfZQojAhfdGltZW91dJRNWAKMC190aW1lb3V0X2F0lEdB2E2AYtTXh4wIX21lc3NhZ2WUWA4BAABUaW1lZCBvdXQgd2FpdGluZyBmb3Ige2FjdGl2aXR5fS4gUGxlYXNlIGNoZWNrIHRoYXQgeW91IGhhdmUgZW5vdWdoIHJlc291cmNlcyB0byBydW4gYWxsIEhvcm92b2QgcHJvY2Vzc2VzLiBFYWNoIEhvcm92b2QgcHJvY2VzcyBydW5zIGluIGEgU3BhcmsgdGFzay4gWW91IG1heSBuZWVkIHRvIGluY3JlYXNlIHRoZSBzdGFydF90aW1lb3V0IHBhcmFtZXRlciB0byBhIGxhcmdlciB2YWx1ZSBpZiB5b3VyIFNwYXJrIHJlc291cmNlcyBhcmUgYWxsb2NhdGVkIG9uLWRlbWFuZC6UdWKMD291dHB1dF9maWxlbmFtZZROjA1ydW5fZnVuY19tb2RllIiMBG5pY3OUfZSMB2VsYXN0aWOUiYwccHJlZml4X291dHB1dF93aXRoX3RpbWVzdGFtcJSIjAVob3N0c5SMLWRneDJoMDE5NC1hMWFkZmY5NjhkNTA4ZThkMTE0Mjk4NmYzZTJjNDJkYzoxNpR1Yi4=\n", - "Mon Sep 6 11:44:58 2021[1,5]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,4]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,1]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,0]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,7]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,2]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,3]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,8]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,10]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,11]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,14]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,9]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,6]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,15]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:44:58 2021[1,12]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n", - "Mon Sep 6 11:44:58 2021[1,13]:Changing cwd from /home/ngc-auth-ldap-allxu to /raid/spark-team/allen-dlrm/spark-3.1.2-bin-hadoop3.2/work/app-20210906114426-0004/1\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:19 2021[1,14]:2021-09-06 11:45:19.644980: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,14]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,5]:2021-09-06 11:45:19.658879: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,5]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,2]:2021-09-06 11:45:19.677330: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,2]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,15]:2021-09-06 11:45:19.692565: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,15]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,13]:2021-09-06 11:45:19.710165: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,13]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,11]:2021-09-06 11:45:19.730864: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,11]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,10]:2021-09-06 11:45:19.755246: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,10]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,7]:2021-09-06 11:45:19.777504: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,7]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,6]:2021-09-06 11:45:19.803092: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,6]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,3]:2021-09-06 11:45:19.823747: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,3]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,8]:2021-09-06 11:45:19.845900: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,8]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,4]:2021-09-06 11:45:19.868706: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,4]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:19 2021[1,0]:2021-09-06 11:45:19.955887: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:19 2021[1,0]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:20 2021[1,9]:2021-09-06 11:45:20.026533: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:20 2021[1,9]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:20 2021[1,1]:2021-09-06 11:45:20.142189: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:20 2021[1,1]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:20 2021[1,12]:2021-09-06 11:45:20.356066: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F FMA\n", - "Mon Sep 6 11:45:20 2021[1,12]:To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "Mon Sep 6 11:45:22 2021[1,5]:2021-09-06 11:45:22.866987: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:59:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:22 2021[1,2]:2021-09-06 11:45:22.934896: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e5:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:22 2021[1,14]:2021-09-06 11:45:22.935986: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:3b:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,11]:2021-09-06 11:45:23.037281: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:5e:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,13]:2021-09-06 11:45:23.046456: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:34:00.0, compute capability: 7.0\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:23 2021[1,7]:2021-09-06 11:45:23.107462: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:5c:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,6]:2021-09-06 11:45:23.108097: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:b7:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,10]:2021-09-06 11:45:23.112989: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e0:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,3]:2021-09-06 11:45:23.203766: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e2:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,8]:2021-09-06 11:45:23.211519: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:be:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,15]:2021-09-06 11:45:23.270928: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:b9:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,4]:2021-09-06 11:45:23.279986: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:bc:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,1]:2021-09-06 11:45:23.341641: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:39:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,0]:2021-09-06 11:45:23.346429: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:36:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,12]:2021-09-06 11:45:23.435210: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:57:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,9]:2021-09-06 11:45:23.477277: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1504] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 30964 MB memory: -> device: 0, name: Tesla V100-SXM3-32GB-H, pci bus id: 0000:e7:00.0, compute capability: 7.0\n", - "Mon Sep 6 11:45:23 2021[1,5]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,5]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,5]:2021-09-06 11:45:23.647929: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,5]:2021-09-06 11:45:23.647952: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,5]:2021-09-06 11:45:23.647993: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,2]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,2]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,2]:2021-09-06 11:45:23.744042: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,2]:2021-09-06 11:45:23.744065: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,2]:2021-09-06 11:45:23.744117: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,14]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,14]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,14]:2021-09-06 11:45:23.759698: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,14]:2021-09-06 11:45:23.759719: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,14]:2021-09-06 11:45:23.759764: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,13]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,13]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,13]:2021-09-06 11:45:23.858335: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,13]:2021-09-06 11:45:23.858356: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,11]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,11]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,13]:2021-09-06 11:45:23.858399: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,11]:2021-09-06 11:45:23.858710: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,11]:2021-09-06 11:45:23.858730: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,11]:2021-09-06 11:45:23.858772: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,7]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,7]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,7]:2021-09-06 11:45:23.940736: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,7]:2021-09-06 11:45:23.940759: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,7]:2021-09-06 11:45:23.940801: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,10]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,10]: warnings.warn(\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:23 2021[1,10]:2021-09-06 11:45:23.941176: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,10]:2021-09-06 11:45:23.941195: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,10]:2021-09-06 11:45:23.941240: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:23 2021[1,5]:2021-09-06 11:45:23.950215: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:23 2021[1,5]:2021-09-06 11:45:23.952931: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:23 2021[1,6]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:23 2021[1,6]: warnings.warn(\n", - "Mon Sep 6 11:45:23 2021[1,6]:2021-09-06 11:45:23.984430: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:23 2021[1,6]:2021-09-06 11:45:23.984453: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:23 2021[1,6]:2021-09-06 11:45:23.984507: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,8]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,8]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,8]:2021-09-06 11:45:24.013682: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,8]:2021-09-06 11:45:24.013706: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,8]:2021-09-06 11:45:24.013758: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,3]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,3]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,3]:2021-09-06 11:45:24.046403: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,3]:2021-09-06 11:45:24.046428: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,3]:2021-09-06 11:45:24.046476: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,4]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,4]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,4]:2021-09-06 11:45:24.067336: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,4]:2021-09-06 11:45:24.067359: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,4]:2021-09-06 11:45:24.067412: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,15]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,15]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,15]:2021-09-06 11:45:24.118355: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,15]:2021-09-06 11:45:24.118379: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,15]:2021-09-06 11:45:24.118447: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:Model: \"model\"\n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:Layer (type) Output Shape Param # Connected to \n", - "Mon Sep 6 11:45:24 2021[1,0]:==================================================================================================\n", - "Mon Sep 6 11:45:24 2021[1,0]:c0 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c1 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c2 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c3 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c4 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c6 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c7 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c8 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c9 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c10 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c11 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c12 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c13 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c14 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c15 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c17 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c18 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c19 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c20 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c21 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c22 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c23 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c24 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,1]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,1]: warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:c25 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,1]:2021-09-06 11:45:24.144886: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c0 (Embedding) (None, 1, 8) 63303112 ['c0[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,1]:2021-09-06 11:45:24.144909: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,1]:2021-09-06 11:45:24.144956: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c1 (Embedding) (None, 1, 8) 270584 ['c1[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c2 (Embedding) (None, 1, 8) 137112 ['c2[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c3 (Embedding) (None, 1, 8) 58712 ['c3[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c4 (Embedding) (None, 1, 8) 160368 ['c4[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c6 (Embedding) (None, 1, 8) 56840 ['c6[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c7 (Embedding) (None, 1, 8) 11056 ['c7[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c8 (Embedding) (None, 1, 8) 504 ['c8[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c9 (Embedding) (None, 1, 8) 44432912 ['c9[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c10 (Embedding) (None, 1, 8) 4659752 ['c10[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,0]:2021-09-06 11:45:24.151145: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c11 (Embedding) (None, 1, 8) 1966624 ['c11[0][0]'] \n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:2021-09-06 11:45:24.151167: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:2021-09-06 11:45:24.151215: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c12 (Embedding) (None, 1, 8) 88 ['c12[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c13 (Embedding) (None, 1, 8) 17672 ['c13[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c14 (Embedding) (None, 1, 8) 85336 ['c14[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c15 (Embedding) (None, 1, 8) 832 ['c15[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c17 (Embedding) (None, 1, 8) 7744 ['c17[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c18 (Embedding) (None, 1, 8) 120 ['c18[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c19 (Embedding) (None, 1, 8) 65327168 ['c19[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c20 (Embedding) (None, 1, 8) 21407520 ['c20[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c21 (Embedding) (None, 1, 8) 57251624 ['c21[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c22 (Embedding) (None, 1, 8) 2420128 ['c22[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c23 (Embedding) (None, 1, 8) 96176 ['c23[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c24 (Embedding) (None, 1, 8) 776 ['c24[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embedding_c25 (Embedding) (None, 1, 8) 280 ['c25[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embeddings_concat (Concatenate (None, 1, 192) 0 ['embedding_c0[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]:) 'embedding_c1[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c2[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c3[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c4[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c6[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c7[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c8[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c9[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c10[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c11[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c12[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c13[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c14[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c15[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c17[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c18[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c19[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c20[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c21[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c22[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c23[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c24[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'embedding_c25[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c5 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:c16 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:embeddings_flatten (Flatten) (None, 192) 0 ['embeddings_concat[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:one_hot_c5 (CategoryEncoding) (None, 4) 0 ['c5[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:one_hot_c16 (CategoryEncoding) (None, 4) 0 ['c16[0][0]'] \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i0 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i1 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i2 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i3 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i4 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i5 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i6 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i7 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i8 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i9 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i10 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i11 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:i12 (InputLayer) [(None, 1)] 0 [] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:inputs_concat (Concatenate) (None, 213) 0 ['embeddings_flatten[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'one_hot_c5[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'one_hot_c16[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i0[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i1[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i2[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i3[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i4[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i5[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i6[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i7[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i8[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i9[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i10[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i11[0][0]', \n", - "Mon Sep 6 11:45:24 2021[1,0]: 'i12[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:batch_normalization (BatchNorm (None, 213) 852 ['inputs_concat[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:alization) \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:dense (Dense) (None, 64) 13696 ['batch_normalization[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:batch_normalization_1 (BatchNo (None, 64) 256 ['dense[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:rmalization) \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:dense_1 (Dense) (None, 64) 4160 ['batch_normalization_1[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:batch_normalization_2 (BatchNo (None, 64) 256 ['dense_1[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:rmalization) \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:dense_2 (Dense) (None, 64) 4160 ['batch_normalization_2[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:batch_normalization_3 (BatchNo (None, 64) 256 ['dense_2[0][0]'] \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,0]:rmalization) \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:dense_3 (Dense) (None, 32) 2080 ['batch_normalization_3[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n", - "Mon Sep 6 11:45:24 2021[1,0]:output (Dense) (None, 1) 33 ['dense_3[0][0]'] \n", - "Mon Sep 6 11:45:24 2021[1,0]:==================================================================================================\n", - "Mon Sep 6 11:45:24 2021[1,0]:Total params: 261,698,789\n", - "Mon Sep 6 11:45:24 2021[1,0]:Trainable params: 261,697,979\n", - "Mon Sep 6 11:45:24 2021[1,0]:Non-trainable params: 810\n", - "Mon Sep 6 11:45:24 2021[1,0]:__________________________________________________________________________________________________\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:24 2021[1,12]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,12]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,12]:2021-09-06 11:45:24.193332: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,12]:2021-09-06 11:45:24.193353: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,12]:2021-09-06 11:45:24.193402: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,14]:2021-09-06 11:45:24.238850: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,14]:2021-09-06 11:45:24.241542: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,9]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/horovod/_keras/callbacks.py:58: UserWarning: Some callbacks may not have access to the averaged metrics, see https://github.com/horovod/horovod/issues/2440\n", - "Mon Sep 6 11:45:24 2021[1,9]: warnings.warn(\n", - "Mon Sep 6 11:45:24 2021[1,9]:2021-09-06 11:45:24.250555: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:45:24 2021[1,9]:2021-09-06 11:45:24.250576: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:45:24 2021[1,9]:2021-09-06 11:45:24.250629: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1614] Profiler found 1 GPUs\n", - "Mon Sep 6 11:45:24 2021[1,11]:2021-09-06 11:45:24.257864: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,11]:2021-09-06 11:45:24.260597: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,2]:2021-09-06 11:45:24.280993: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,13]:2021-09-06 11:45:24.287541: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,2]:2021-09-06 11:45:24.287675: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,13]:2021-09-06 11:45:24.290185: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,10]:2021-09-06 11:45:24.509055: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,10]:2021-09-06 11:45:24.511856: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,7]:2021-09-06 11:45:24.559661: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,7]:2021-09-06 11:45:24.562511: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,6]:2021-09-06 11:45:24.633007: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,6]:2021-09-06 11:45:24.635583: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,8]:2021-09-06 11:45:24.856408: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,3]:2021-09-06 11:45:24.859705: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,8]:2021-09-06 11:45:24.861849: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,3]:2021-09-06 11:45:24.864132: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,0]:2021-09-06 11:45:24.865753: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,0]:2021-09-06 11:45:24.870050: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,9]:2021-09-06 11:45:24.920789: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,9]:2021-09-06 11:45:24.923768: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,12]:2021-09-06 11:45:24.927953: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,12]:2021-09-06 11:45:24.930836: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:24 2021[1,1]:2021-09-06 11:45:24.944178: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:24 2021[1,1]:2021-09-06 11:45:24.951561: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:25 2021[1,15]:2021-09-06 11:45:25.019351: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:25 2021[1,15]:2021-09-06 11:45:25.023739: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:25 2021[1,4]:2021-09-06 11:45:25.132725: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:45:25 2021[1,4]:2021-09-06 11:45:25.139297: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:45:25 2021[1,5]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fcebaccea60> and will run it as-is.\n", - "Mon Sep 6 11:45:25 2021[1,5]:Cause: could not parse the source code of . at 0x7fcebaccea60>: no matching AST found\n", - "Mon Sep 6 11:45:25 2021[1,5]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,5]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fceb96944c0> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,5]:Cause: could not parse the source code of . at 0x7fceb96944c0>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,5]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,14]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f7cc813dee0> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,14]:Cause: could not parse the source code of . at 0x7f7cc813dee0>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,14]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,2]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f540c075d30> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,2]:Cause: could not parse the source code of . at 0x7f540c075d30>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,2]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,11]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f276c530670> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,11]:Cause: could not parse the source code of . at 0x7f276c530670>: no matching AST found\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:26 2021[1,11]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,13]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f3cc12349d0> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,13]:Cause: could not parse the source code of . at 0x7f3cc12349d0>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,13]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,14]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f7bf4174040> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,14]:Cause: could not parse the source code of . at 0x7f7bf4174040>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,14]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:26 2021[1,2]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f53c4044160> and will run it as-is.\n", - "Mon Sep 6 11:45:26 2021[1,2]:Cause: could not parse the source code of . at 0x7f53c4044160>: no matching AST found\n", - "Mon Sep 6 11:45:26 2021[1,2]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,11]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f27cc054280> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,11]:Cause: could not parse the source code of . at 0x7f27cc054280>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,11]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,13]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f3c04103280> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,13]:Cause: could not parse the source code of . at 0x7f3c04103280>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,13]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,7]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fdbaa897550> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,7]:Cause: could not parse the source code of . at 0x7fdbaa897550>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,7]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,6]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f24600dbaf0> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,6]:Cause: could not parse the source code of . at 0x7f24600dbaf0>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,6]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,10]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f175809ac10> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,10]:Cause: could not parse the source code of . at 0x7f175809ac10>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,10]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,6]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f2460074280> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,6]:Cause: could not parse the source code of . at 0x7f2460074280>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,6]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,7]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fdc342ec280> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,7]:Cause: could not parse the source code of . at 0x7fdc342ec280>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,7]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:27 2021[1,10]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f17a81bf5e0> and will run it as-is.\n", - "Mon Sep 6 11:45:27 2021[1,10]:Cause: could not parse the source code of . at 0x7f17a81bf5e0>: no matching AST found\n", - "Mon Sep 6 11:45:27 2021[1,10]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,0]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f1ae4675ee0> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,0]:Cause: could not parse the source code of . at 0x7f1ae4675ee0>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,0]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,3]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f32a406d550> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,3]:Cause: could not parse the source code of . at 0x7f32a406d550>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,3]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,1]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fd8c81b6b80> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,1]:Cause: could not parse the source code of . at 0x7fd8c81b6b80>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,1]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,8]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fd84e254dc0> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,8]:Cause: could not parse the source code of . at 0x7fd84e254dc0>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,8]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,15]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fe3a71ee1f0> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,15]:Cause: could not parse the source code of . at 0x7fe3a71ee1f0>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,15]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,9]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fb74018b550> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,9]:Cause: could not parse the source code of . at 0x7fb74018b550>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,9]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,0]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f1bd00ae280> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,0]:Cause: could not parse the source code of . at 0x7f1bd00ae280>: no matching AST found\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:28 2021[1,0]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,12]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fce00127ca0> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,12]:Cause: could not parse the source code of . at 0x7fce00127ca0>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,12]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,8]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fd7b01be430> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,8]:Cause: could not parse the source code of . at 0x7fd7b01be430>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,8]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,4]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f2a840e49d0> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,4]:Cause: could not parse the source code of . at 0x7f2a840e49d0>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,4]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,3]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f3254018280> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,3]:Cause: could not parse the source code of . at 0x7f3254018280>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,3]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,1]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fd91404c280> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,1]:Cause: could not parse the source code of . at 0x7fd91404c280>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,1]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,12]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fcdac026280> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,12]:Cause: could not parse the source code of . at 0x7fcdac026280>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,12]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,15]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fe2d40f7280> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,15]:Cause: could not parse the source code of . at 0x7fe2d40f7280>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,15]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,4]:WARNING:tensorflow:AutoGraph could not transform . at 0x7f2a64056160> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,4]:Cause: could not parse the source code of . at 0x7f2a64056160>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,4]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:28 2021[1,9]:WARNING:tensorflow:AutoGraph could not transform . at 0x7fb740149040> and will run it as-is.\n", - "Mon Sep 6 11:45:28 2021[1,9]:Cause: could not parse the source code of . at 0x7fb740149040>: no matching AST found\n", - "Mon Sep 6 11:45:28 2021[1,9]:To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert\n", - "Mon Sep 6 11:45:36 2021[1,14]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,14]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,2]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,2]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,11]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,11]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,5]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,5]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,6]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,6]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,10]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,10]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,7]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,7]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:36 2021[1,13]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:36 2021[1,13]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,8]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,8]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,4]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,4]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,0]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,0]: column_as_pandas = column.data.chunks[0].to_pandas()\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:37 2021[1,3]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,3]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,1]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,1]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,12]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,12]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,15]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,15]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:37 2021[1,9]:/home/ngc-auth-ldap-allxu/miniconda3/lib/python3.8/site-packages/petastorm/arrow_reader_worker.py:53: FutureWarning: Calling .data on ChunkedArray is provided for compatibility after Column was removed, simply drop this attribute\n", - "Mon Sep 6 11:45:37 2021[1,9]: column_as_pandas = column.data.chunks[0].to_pandas()\n", - "Mon Sep 6 11:45:46 2021[1,14]:2021-09-06 11:45:46.163581: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 633106 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,2]:2021-09-06 11:45:46.173808: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 625961 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,11]:2021-09-06 11:45:46.470637: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 575620 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,5]:2021-09-06 11:45:46.483315: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 602125 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,14]:2021-09-06 11:45:46.515473: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:46 2021[1,6]:2021-09-06 11:45:46.620458: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 612890 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,2]:2021-09-06 11:45:46.655265: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:46 2021[1,10]:2021-09-06 11:45:46.681795: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 601332 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,7]:2021-09-06 11:45:46.708487: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 572490 of 655350\n", - "Mon Sep 6 11:45:46 2021[1,13]:2021-09-06 11:45:46.848852: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 584226 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,8]:2021-09-06 11:45:47.028900: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 631682 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,4]:2021-09-06 11:45:47.123354: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 622824 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,0]:2021-09-06 11:45:47.160067: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 624462 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,3]:2021-09-06 11:45:47.306279: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 559646 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,6]:2021-09-06 11:45:47.317935: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,1]:2021-09-06 11:45:47.328390: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 602957 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,12]:2021-09-06 11:45:47.401105: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 609749 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,8]:2021-09-06 11:45:47.406648: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,5]:2021-09-06 11:45:47.410203: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,15]:2021-09-06 11:45:47.490260: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 606865 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,10]:2021-09-06 11:45:47.576105: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,9]:2021-09-06 11:45:47.631347: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:338] Filling up shuffle buffer (this may take a while): 610214 of 655350\n", - "Mon Sep 6 11:45:47 2021[1,4]:2021-09-06 11:45:47.638664: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,0]:2021-09-06 11:45:47.648328: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:47 2021[1,11]:2021-09-06 11:45:47.874307: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,12]:2021-09-06 11:45:48.136479: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,7]:2021-09-06 11:45:48.178890: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,1]:2021-09-06 11:45:48.243785: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,15]:2021-09-06 11:45:48.283844: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,13]:2021-09-06 11:45:48.332091: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:48 2021[1,9]:2021-09-06 11:45:48.383569: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "Mon Sep 6 11:45:49 2021[1,3]:2021-09-06 11:45:49.210125: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:363] Shuffle buffer filled.\n", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:53 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,0]:NCCL version 2.10.3+cuda11.0\n", - "Mon Sep 6 11:45:53 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Using network IB\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:53 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Bootstrap : Using enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO NET/Plugin : No plugin found (libnccl-net.so), using internal implementation\n", - "Mon Sep 6 11:45:53 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO NET/IB : Using [0]mlx5_0:1/RoCE [1]mlx5_1:1/RoCE [2]mlx5_2:1/RoCE [3]mlx5_3:1/RoCE [4]mlx5_4:1/RoCE [5]mlx5_5:1/RoCE [6]mlx5_6:1/RoCE [7]mlx5_7:1/RoCE [8]mlx5_8:1/RoCE [9]mlx5_9:1/RoCE ; OOB enp53s0:10.148.30.59<0>\n", - "Mon Sep 6 11:45:53 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Using network IB\n", - "Mon Sep 6 11:45:53 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:53 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO NCCL_IB_GID_INDEX set by environment to 3.\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Trees [0] 1/-1/-1->13->0 [1] 1/-1/-1->13->0 [2] 1/-1/-1->13->0 [3] 1/-1/-1->13->0 [4] 1/-1/-1->13->0 [5] 1/-1/-1->13->0 [6] 1/-1/-1->13->0 [7] 1/-1/-1->13->0 [8] 1/-1/-1->13->0 [9] 1/-1/-1->13->0 [10] 1/-1/-1->13->0 [11] 1/-1/-1->13->0\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Setting affinity for GPU 0 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 00/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 01/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 02/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 03/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 04/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 05/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 06/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 07/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Trees [0] -1/-1/-1->15->6 [1] -1/-1/-1->15->6 [2] -1/-1/-1->15->6 [3] -1/-1/-1->15->6 [4] -1/-1/-1->15->6 [5] -1/-1/-1->15->6 [6] -1/-1/-1->15->6 [7] -1/-1/-1->15->6 [8] -1/-1/-1->15->6 [9] -1/-1/-1->15->6 [10] -1/-1/-1->15->6 [11] -1/-1/-1->15->6\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Setting affinity for GPU 9 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Trees [0] 9/-1/-1->2->11 [1] 9/-1/-1->2->11 [2] 9/-1/-1->2->11 [3] 9/-1/-1->2->11 [4] 9/-1/-1->2->11 [5] 9/-1/-1->2->11 [6] 9/-1/-1->2->11 [7] 9/-1/-1->2->11 [8] 9/-1/-1->2->11 [9] 9/-1/-1->2->11 [10] 9/-1/-1->2->11 [11] 9/-1/-1->2->11\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Setting affinity for GPU 14 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Trees [0] 14/-1/-1->1->13 [1] 14/-1/-1->1->13 [2] 14/-1/-1->1->13 [3] 14/-1/-1->1->13 [4] 14/-1/-1->1->13 [5] 14/-1/-1->1->13 [6] 14/-1/-1->1->13 [7] 14/-1/-1->1->13 [8] 14/-1/-1->1->13 [9] 14/-1/-1->1->13 [10] 14/-1/-1->1->13 [11] 14/-1/-1->1->13\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Setting affinity for GPU 2 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Trees [0] 10/-1/-1->3->9 [1] 10/-1/-1->3->9 [2] 10/-1/-1->3->9 [3] 10/-1/-1->3->9 [4] 10/-1/-1->3->9 [5] 10/-1/-1->3->9 [6] 10/-1/-1->3->9 [7] 10/-1/-1->3->9 [8] 10/-1/-1->3->9 [9] 10/-1/-1->3->9 [10] 10/-1/-1->3->9 [11] 10/-1/-1->3->9\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Setting affinity for GPU 13 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Trees [0] 5/-1/-1->14->1 [1] 5/-1/-1->14->1 [2] 5/-1/-1->14->1 [3] 5/-1/-1->14->1 [4] 5/-1/-1->14->1 [5] 5/-1/-1->14->1 [6] 5/-1/-1->14->1 [7] 5/-1/-1->14->1 [8] 5/-1/-1->14->1 [9] 5/-1/-1->14->1 [10] 5/-1/-1->14->1 [11] 5/-1/-1->14->1\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Setting affinity for GPU 3 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 08/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 09/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 10/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 11/12 : 0 13 1 14 5 12 7 11 2 9 3 10 4 8 6 15\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Trees [0] 13/-1/-1->0->-1 [1] 13/-1/-1->0->-1 [2] 13/-1/-1->0->-1 [3] 13/-1/-1->0->-1 [4] 13/-1/-1->0->-1 [5] 13/-1/-1->0->-1 [6] 13/-1/-1->0->-1 [7] 13/-1/-1->0->-1 [8] 13/-1/-1->0->-1 [9] 13/-1/-1->0->-1 [10] 13/-1/-1->0->-1 [11] 13/-1/-1->0->-1\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Setting affinity for GPU 1 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Trees [0] 15/-1/-1->6->8 [1] 15/-1/-1->6->8 [2] 15/-1/-1->6->8 [3] 15/-1/-1->6->8 [4] 15/-1/-1->6->8 [5] 15/-1/-1->6->8 [6] 15/-1/-1->6->8 [7] 15/-1/-1->6->8 [8] 15/-1/-1->6->8 [9] 15/-1/-1->6->8 [10] 15/-1/-1->6->8 [11] 15/-1/-1->6->8\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Setting affinity for GPU 8 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Trees [0] 8/-1/-1->4->10 [1] 8/-1/-1->4->10 [2] 8/-1/-1->4->10 [3] 8/-1/-1->4->10 [4] 8/-1/-1->4->10 [5] 8/-1/-1->4->10 [6] 8/-1/-1->4->10 [7] 8/-1/-1->4->10 [8] 8/-1/-1->4->10 [9] 8/-1/-1->4->10 [10] 8/-1/-1->4->10 [11] 8/-1/-1->4->10\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Setting affinity for GPU 10 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Trees [0] 6/-1/-1->8->4 [1] 6/-1/-1->8->4 [2] 6/-1/-1->8->4 [3] 6/-1/-1->8->4 [4] 6/-1/-1->8->4 [5] 6/-1/-1->8->4 [6] 6/-1/-1->8->4 [7] 6/-1/-1->8->4 [8] 6/-1/-1->8->4 [9] 6/-1/-1->8->4 [10] 6/-1/-1->8->4 [11] 6/-1/-1->8->4\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Setting affinity for GPU 11 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Trees [0] 12/-1/-1->5->14 [1] 12/-1/-1->5->14 [2] 12/-1/-1->5->14 [3] 12/-1/-1->5->14 [4] 12/-1/-1->5->14 [5] 12/-1/-1->5->14 [6] 12/-1/-1->5->14 [7] 12/-1/-1->5->14 [8] 12/-1/-1->5->14 [9] 12/-1/-1->5->14 [10] 12/-1/-1->5->14 [11] 12/-1/-1->5->14\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Setting affinity for GPU 5 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Trees [0] 11/-1/-1->7->12 [1] 11/-1/-1->7->12 [2] 11/-1/-1->7->12 [3] 11/-1/-1->7->12 [4] 11/-1/-1->7->12 [5] 11/-1/-1->7->12 [6] 11/-1/-1->7->12 [7] 11/-1/-1->7->12 [8] 11/-1/-1->7->12 [9] 11/-1/-1->7->12 [10] 11/-1/-1->7->12 [11] 11/-1/-1->7->12\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Setting affinity for GPU 6 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Trees [0] 4/-1/-1->10->3 [1] 4/-1/-1->10->3 [2] 4/-1/-1->10->3 [3] 4/-1/-1->10->3 [4] 4/-1/-1->10->3 [5] 4/-1/-1->10->3 [6] 4/-1/-1->10->3 [7] 4/-1/-1->10->3 [8] 4/-1/-1->10->3 [9] 4/-1/-1->10->3 [10] 4/-1/-1->10->3 [11] 4/-1/-1->10->3\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Setting affinity for GPU 12 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Trees [0] 3/-1/-1->9->2 [1] 3/-1/-1->9->2 [2] 3/-1/-1->9->2 [3] 3/-1/-1->9->2 [4] 3/-1/-1->9->2 [5] 3/-1/-1->9->2 [6] 3/-1/-1->9->2 [7] 3/-1/-1->9->2 [8] 3/-1/-1->9->2 [9] 3/-1/-1->9->2 [10] 3/-1/-1->9->2 [11] 3/-1/-1->9->2\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Setting affinity for GPU 15 to ffffff00,0000ffff,ff000000\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Trees [0] 2/-1/-1->11->7 [1] 2/-1/-1->11->7 [2] 2/-1/-1->11->7 [3] 2/-1/-1->11->7 [4] 2/-1/-1->11->7 [5] 2/-1/-1->11->7 [6] 2/-1/-1->11->7 [7] 2/-1/-1->11->7 [8] 2/-1/-1->11->7 [9] 2/-1/-1->11->7 [10] 2/-1/-1->11->7 [11] 2/-1/-1->11->7\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Setting affinity for GPU 7 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Trees [0] 7/-1/-1->12->5 [1] 7/-1/-1->12->5 [2] 7/-1/-1->12->5 [3] 7/-1/-1->12->5 [4] 7/-1/-1->12->5 [5] 7/-1/-1->12->5 [6] 7/-1/-1->12->5 [7] 7/-1/-1->12->5 [8] 7/-1/-1->12->5 [9] 7/-1/-1->12->5 [10] 7/-1/-1->12->5 [11] 7/-1/-1->12->5\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Setting affinity for GPU 4 to ff,ffff0000,00ffffff\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 00 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 00 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 00 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 00 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 00 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 00 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 01 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 00 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 01 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 01 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 01 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 01 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 01 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 01 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 02 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 02 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 02 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 02 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 02 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 02 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 03 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 02 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 03 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 03 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 03 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 03 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 03 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 03 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 04 : 13[34000] -> 1[39000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 04 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 04 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 04 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 04 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 04 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 04 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 05 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 05 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 05 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 05 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 05 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 05 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 06 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 05 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 06 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 06 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 06 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 06 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 06 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 06 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 07 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 07 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 07 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 07 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 07 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 07 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 08 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 07 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 08 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 08 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 08 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 08 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 08 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 08 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 09 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 09 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 09 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 09 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 09 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 09 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 10 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 09 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 10 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 10 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 10 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 10 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 10 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 10 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 11 : 13[34000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 11 : 14[3b000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 11 : 7[5c000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 11 : 15[b9000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 11 : 4[bc000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 11 : 3[e2000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 11 : 6[b7000] -> 15[b9000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 00 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 00 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 01 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 01 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 02 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 02 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 03 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 04 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 03 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 05 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 04 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 06 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 05 : 2[e5000] -> 9[e7000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 07 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 06 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 08 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 07 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 09 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 08 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 10 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 09 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 11 : 5[59000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 10 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 11 : 2[e5000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 00 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 01 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 02 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 03 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 04 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 05 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 06 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 07 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 08 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 09 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 00 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 10 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 01 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 11 : 1[39000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 02 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 03 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 04 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 05 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 06 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 00 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 07 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 01 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 08 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 02 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 09 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 03 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 00 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 10 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 04 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 01 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 11 : 11[5e000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 05 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 02 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 06 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 03 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 07 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 04 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 08 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 05 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 09 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 06 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 10 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 07 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Channel 11 : 0[36000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 08 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 09 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 00 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 10 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 01 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 11 : 8[be000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 02 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 03 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 04 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 05 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 06 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 07 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 08 : 10[e0000] -> 4[bc000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 09 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 00 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 10 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 01 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 11 : 10[e0000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 02 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 03 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 00 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 04 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 01 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 05 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 02 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 06 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 03 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 00 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 07 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 04 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 01 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 08 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 05 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 02 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 06 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 09 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 03 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 10 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 07 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 04 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 11 : 12[57000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 08 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 05 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 09 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 06 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 10 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 07 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 11 : 9[e7000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 08 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 09 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 10 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Channel 11 : 15[b9000] -> 6[b7000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 00 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:58 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 01 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 02 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 03 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 04 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 05 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 06 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 07 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 08 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 09 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 10 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Channel 11 : 13[34000] -> 0[36000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 00 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 01 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 02 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 03 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 00 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 04 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 01 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 05 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 02 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 00 : 5[59000] -> 14[3b000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:59 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 06 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 03 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 01 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 07 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 04 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 02 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 08 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 05 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 03 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 09 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 06 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 00 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 04 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 10 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 01 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 07 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 05 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Channel 11 : 4[bc000] -> 10[e0000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 08 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 02 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 06 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 03 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 09 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 07 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 10 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 04 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 08 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Channel 11 : 14[3b000] -> 1[39000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 05 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 09 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 06 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 10 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 07 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Channel 11 : 5[59000] -> 14[3b000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 08 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 09 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 00 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 10 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 00 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 01 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Channel 11 : 7[5c000] -> 12[57000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 02 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 01 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 02 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 03 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 03 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 04 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 05 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 04 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 06 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 05 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 00 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 07 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 06 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 01 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 08 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 07 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Connected all rings\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 02 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 09 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 08 : 10[e0000] -> 3[e2000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 00 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 03 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 10 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 09 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 01 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 04 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Channel 11 : 3[e2000] -> 9[e7000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 10 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 02 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 05 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Channel 11 : 10[e0000] -> 3[e2000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 03 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 06 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 00 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 04 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 07 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 05 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 01 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 08 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 02 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 06 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 09 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 03 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 07 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 10 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 08 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 04 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Channel 11 : 1[39000] -> 13[34000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 09 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 05 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 00 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 00 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 10 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 01 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 06 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 01 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 07 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 02 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Channel 11 : 6[b7000] -> 8[be000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 02 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 03 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 08 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 03 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 09 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 04 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 10 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 05 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 04 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Channel 11 : 12[57000] -> 5[59000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 06 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 05 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 07 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 06 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 08 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 07 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 09 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 08 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 10 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 09 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 00 : 8[be000] -> 4[bc000] via P2P/IPC\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Channel 11 : 2[e5000] -> 11[5e000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 10 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 01 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Channel 11 : 9[e7000] -> 2[e5000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 02 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 03 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 04 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 05 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 06 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 07 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 08 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 00 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 09 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 01 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 10 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 02 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Channel 11 : 8[be000] -> 4[bc000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 03 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 04 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 05 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 06 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 07 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 08 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 09 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 10 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Channel 11 : 11[5e000] -> 7[5c000] via P2P/IPC\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO Connected all trees\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO threadThresholds 8/8/64 | 128/8/64 | 8/8/512\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO 12 coll channels, 16 p2p channels, 16 p2p channels per peer\n", - "Mon Sep 6 11:45:59 2021[1,7]:dgx2h0194:41893:42743 [0] NCCL INFO comm 0x7fdcb862ad60 rank 7 nranks 16 cudaDev 0 busId 5c000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,11]:dgx2h0194:41897:42858 [0] NCCL INFO comm 0x7f2914629ae0 rank 11 nranks 16 cudaDev 0 busId 5e000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,15]:dgx2h0194:41901:42857 [0] NCCL INFO comm 0x7fe41462a050 rank 15 nranks 16 cudaDev 0 busId b9000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,13]:dgx2h0194:41899:42721 [0] NCCL INFO comm 0x7f3cf4629f50 rank 13 nranks 16 cudaDev 0 busId 34000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,12]:dgx2h0194:41898:42413 [0] NCCL INFO comm 0x7fcea062aa60 rank 12 nranks 16 cudaDev 0 busId 57000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,4]:dgx2h0194:41890:42739 [0] NCCL INFO comm 0x7f2bb862ae60 rank 4 nranks 16 cudaDev 0 busId bc000 - Init COMPLETE\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:59 2021[1,1]:dgx2h0194:41887:42486 [0] NCCL INFO comm 0x7fda3462aef0 rank 1 nranks 16 cudaDev 0 busId 39000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,6]:dgx2h0194:41892:42733 [0] NCCL INFO comm 0x7f257462aab0 rank 6 nranks 16 cudaDev 0 busId b7000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,2]:dgx2h0194:41888:42361 [0] NCCL INFO comm 0x7f54e462ac10 rank 2 nranks 16 cudaDev 0 busId e5000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,8]:dgx2h0194:41894:42489 [0] NCCL INFO comm 0x7fd8c862b120 rank 8 nranks 16 cudaDev 0 busId be000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,3]:dgx2h0194:41889:42722 [0] NCCL INFO comm 0x7f33b062a600 rank 3 nranks 16 cudaDev 0 busId e2000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,5]:dgx2h0194:41891:42723 [0] NCCL INFO comm 0x7fcf1462aa00 rank 5 nranks 16 cudaDev 0 busId 59000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,9]:dgx2h0194:41895:42860 [0] NCCL INFO comm 0x7fb7d062a3c0 rank 9 nranks 16 cudaDev 0 busId e7000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO comm 0x7f1c8068aa60 rank 0 nranks 16 cudaDev 0 busId 36000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,14]:dgx2h0194:41900:42734 [0] NCCL INFO comm 0x7f7db062a080 rank 14 nranks 16 cudaDev 0 busId 3b000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,10]:dgx2h0194:41896:42859 [0] NCCL INFO comm 0x7f18ac629ef0 rank 10 nranks 16 cudaDev 0 busId e0000 - Init COMPLETE\n", - "Mon Sep 6 11:45:59 2021[1,0]:dgx2h0194:41886:42730 [0] NCCL INFO Launch mode Parallel\n", - "Mon Sep 6 11:45:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:11 2021[1,11]:2021-09-06 11:46:11.401104: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,11]:2021-09-06 11:46:11.401164: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,3]:2021-09-06 11:46:11.440290: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,3]:2021-09-06 11:46:11.440344: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,9]:2021-09-06 11:46:11.442416: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,9]:2021-09-06 11:46:11.442453: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,5]:2021-09-06 11:46:11.445379: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,5]:2021-09-06 11:46:11.445409: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,8]:2021-09-06 11:46:11.461500: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,8]:2021-09-06 11:46:11.461545: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,0]:2021-09-06 11:46:11.467532: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,0]:2021-09-06 11:46:11.467566: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,14]:2021-09-06 11:46:11.467699: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,14]:2021-09-06 11:46:11.467725: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,7]:2021-09-06 11:46:11.467927: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,7]:2021-09-06 11:46:11.467954: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,15]:2021-09-06 11:46:11.478742: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,15]:2021-09-06 11:46:11.478775: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,2]:2021-09-06 11:46:11.480342: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,2]:2021-09-06 11:46:11.480375: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,4]:2021-09-06 11:46:11.493077: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,4]:2021-09-06 11:46:11.493108: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,12]:2021-09-06 11:46:11.514149: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,12]:2021-09-06 11:46:11.514199: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,1]:2021-09-06 11:46:11.517690: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,1]:2021-09-06 11:46:11.517726: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,13]:2021-09-06 11:46:11.526581: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,13]:2021-09-06 11:46:11.526613: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,6]:2021-09-06 11:46:11.537704: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,6]:2021-09-06 11:46:11.537739: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:11 2021[1,10]:2021-09-06 11:46:11.555526: I tensorflow/core/profiler/lib/profiler_session.cc:131] Profiler session initializing.\n", - "Mon Sep 6 11:46:11 2021[1,10]:2021-09-06 11:46:11.555565: I tensorflow/core/profiler/lib/profiler_session.cc:146] Profiler session started.\n", - "Mon Sep 6 11:46:12 2021[1,13]:2021-09-06 11:46:12.486392: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,14]:2021-09-06 11:46:12.486420: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,2]:2021-09-06 11:46:12.486804: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,6]:2021-09-06 11:46:12.486894: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,11]:2021-09-06 11:46:12.487354: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,6]:2021-09-06 11:46:12.489094: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,13]:2021-09-06 11:46:12.489218: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,2]:2021-09-06 11:46:12.489982: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,11]:2021-09-06 11:46:12.490307: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,14]:2021-09-06 11:46:12.490535: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:45:59 2021[1,0]: 1/4000 [..............................]Mon Sep 6 11:45:59 2021[1,0]: - ETA: 34:42:44 - loss: 1.3348 - auc: 0.5421Mon Sep 6 11:46:12 2021[1,0]:\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bMon Sep 6 11:46:12 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:12 2021[1,5]:2021-09-06 11:46:12.494098: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,9]:2021-09-06 11:46:12.494182: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,12]:2021-09-06 11:46:12.494154: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,15]:2021-09-06 11:46:12.494339: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,8]:2021-09-06 11:46:12.494413: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,3]:2021-09-06 11:46:12.494461: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,1]:2021-09-06 11:46:12.494477: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,4]:2021-09-06 11:46:12.494922: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,10]:2021-09-06 11:46:12.495422: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,12]:2021-09-06 11:46:12.496543: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,9]:2021-09-06 11:46:12.496573: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,0]:2021-09-06 11:46:12.496713: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,5]:2021-09-06 11:46:12.496875: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,7]:2021-09-06 11:46:12.497310: I tensorflow/core/profiler/lib/profiler_session.cc:66] Profiler session collecting data.\n", - "Mon Sep 6 11:46:12 2021[1,8]:2021-09-06 11:46:12.497408: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,1]:2021-09-06 11:46:12.497466: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,15]:2021-09-06 11:46:12.497573: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,10]:2021-09-06 11:46:12.497718: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,4]:2021-09-06 11:46:12.497957: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,3]:2021-09-06 11:46:12.498785: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,0]:2021-09-06 11:46:12.499468: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,7]:2021-09-06 11:46:12.499616: I tensorflow/core/profiler/internal/gpu/cupti_tracer.cc:1748] CUPTI activity buffer flushed\n", - "Mon Sep 6 11:46:12 2021[1,10]:2021-09-06 11:46:12.689220: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,7]:2021-09-06 11:46:12.738674: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2612 callback api events and 2559 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,10]:2021-09-06 11:46:12.739311: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,2]:2021-09-06 11:46:12.772937: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2614 callback api events and 2561 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,13]:2021-09-06 11:46:12.775817: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,0]:2021-09-06 11:46:12.788372: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2614 callback api events and 2561 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,11]:2021-09-06 11:46:12.793984: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,14]:2021-09-06 11:46:12.797338: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,12]:2021-09-06 11:46:12.799541: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2614 callback api events and 2561 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,3]:2021-09-06 11:46:12.804509: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,9]:2021-09-06 11:46:12.809215: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2614 callback api events and 2561 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,6]:2021-09-06 11:46:12.817765: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,7]:2021-09-06 11:46:12.825298: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,4]:2021-09-06 11:46:12.830887: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2612 callback api events and 2559 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,15]:2021-09-06 11:46:12.831932: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2612 callback api events and 2559 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,5]:2021-09-06 11:46:12.836523: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,2]:2021-09-06 11:46:12.838553: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,13]:2021-09-06 11:46:12.839676: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,1]:2021-09-06 11:46:12.840641: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,8]:2021-09-06 11:46:12.847102: I tensorflow/core/profiler/internal/gpu/cupti_collector.cc:673] GpuTracer has collected 2615 callback api events and 2562 activity events. \n", - "Mon Sep 6 11:46:12 2021[1,0]:2021-09-06 11:46:12.851656: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,12]:2021-09-06 11:46:12.862278: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,11]:2021-09-06 11:46:12.862736: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,14]:2021-09-06 11:46:12.865552: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,9]:2021-09-06 11:46:12.874796: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,3]:2021-09-06 11:46:12.883307: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:12 2021[1,4]:2021-09-06 11:46:12.908955: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,5]:2021-09-06 11:46:12.909348: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,15]:2021-09-06 11:46:12.911988: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,6]:2021-09-06 11:46:12.913338: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,8]:2021-09-06 11:46:12.919742: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,1]:2021-09-06 11:46:12.921926: I tensorflow/core/profiler/lib/profiler_session.cc:164] Profiler session tear down.\n", - "Mon Sep 6 11:46:12 2021[1,10]:2021-09-06 11:46:12.971783: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:12 2021[1,10]:\n", - "Mon Sep 6 11:46:13 2021[1,10]:2021-09-06 11:46:13.126279: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,7]:2021-09-06 11:46:13.220381: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,7]:\n", - "Mon Sep 6 11:46:13 2021[1,10]:2021-09-06 11:46:13.236756: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,10]:\n", - "Mon Sep 6 11:46:13 2021[1,10]:2021-09-06 11:46:13.244220: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,0]:2021-09-06 11:46:13.247347: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,0]:\n", - "Mon Sep 6 11:46:13 2021[1,10]:2021-09-06 11:46:13.248759: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,10]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,10]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,10]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,10]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,10]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,10]:\n", - "Mon Sep 6 11:46:13 2021[1,12]:2021-09-06 11:46:13.282450: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,12]:\n", - "Mon Sep 6 11:46:13 2021[1,9]:2021-09-06 11:46:13.305546: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,9]:\n", - "Mon Sep 6 11:46:13 2021[1,13]:2021-09-06 11:46:13.314358: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,13]:\n", - "Mon Sep 6 11:46:13 2021[1,14]:2021-09-06 11:46:13.347053: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,14]:\n", - "Mon Sep 6 11:46:13 2021[1,11]:2021-09-06 11:46:13.389071: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,11]:\n", - "Mon Sep 6 11:46:13 2021[1,8]:2021-09-06 11:46:13.417449: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,8]:\n", - "Mon Sep 6 11:46:13 2021[1,15]:2021-09-06 11:46:13.440662: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,15]:\n", - "Mon Sep 6 11:46:13 2021[1,7]:2021-09-06 11:46:13.445472: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,5]:2021-09-06 11:46:13.464452: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,5]:\n", - "Mon Sep 6 11:46:13 2021[1,4]:2021-09-06 11:46:13.505475: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,4]:\n", - "Mon Sep 6 11:46:13 2021[1,1]:2021-09-06 11:46:13.538948: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,1]:\n", - "Mon Sep 6 11:46:13 2021[1,6]:2021-09-06 11:46:13.539917: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,6]:\n", - "Mon Sep 6 11:46:13 2021[1,7]:2021-09-06 11:46:13.575977: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,7]:\n", - "Mon Sep 6 11:46:13 2021[1,7]:2021-09-06 11:46:13.583159: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,7]:2021-09-06 11:46:13.588595: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,7]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,7]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,7]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,7]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,7]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,7]:\n", - "Mon Sep 6 11:46:13 2021[1,0]:2021-09-06 11:46:13.596438: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,12]:2021-09-06 11:46:13.663240: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,9]:2021-09-06 11:46:13.669575: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:13 2021[1,3]:2021-09-06 11:46:13.705164: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,3]:\n", - "Mon Sep 6 11:46:13 2021[1,2]:2021-09-06 11:46:13.727985: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,2]:\n", - "Mon Sep 6 11:46:13 2021[1,14]:2021-09-06 11:46:13.770514: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,0]:2021-09-06 11:46:13.770742: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,0]:\n", - "Mon Sep 6 11:46:13 2021[1,0]:2021-09-06 11:46:13.777869: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,0]:2021-09-06 11:46:13.784817: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,0]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,0]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,0]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,0]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,0]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,0]:\n", - "Mon Sep 6 11:46:13 2021[1,13]:2021-09-06 11:46:13.806429: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,12]:2021-09-06 11:46:13.836961: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,12]:\n", - "Mon Sep 6 11:46:13 2021[1,12]:2021-09-06 11:46:13.844073: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,12]:2021-09-06 11:46:13.850941: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,12]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,12]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,12]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,12]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,12]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,12]:\n", - "Mon Sep 6 11:46:13 2021[1,9]:2021-09-06 11:46:13.852005: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,9]:\n", - "Mon Sep 6 11:46:13 2021[1,8]:2021-09-06 11:46:13.858089: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,9]:2021-09-06 11:46:13.858866: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,9]:2021-09-06 11:46:13.865756: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,9]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,9]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,9]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,9]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,9]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,9]:\n", - "Mon Sep 6 11:46:13 2021[1,1]:2021-09-06 11:46:13.919252: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,5]:2021-09-06 11:46:13.921579: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,15]:2021-09-06 11:46:13.935380: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,11]:2021-09-06 11:46:13.953863: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,14]:2021-09-06 11:46:13.969342: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,14]:\n", - "Mon Sep 6 11:46:13 2021[1,14]:2021-09-06 11:46:13.976218: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:13 2021[1,14]:2021-09-06 11:46:13.983131: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:13 2021[1,14]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:13 2021[1,14]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:13 2021[1,14]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:13 2021[1,14]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,14]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:13 2021[1,14]:\n", - "Mon Sep 6 11:46:14 2021[1,13]:2021-09-06 11:46:14.025457: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,13]:\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:14 2021[1,4]:2021-09-06 11:46:14.031628: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,13]:2021-09-06 11:46:14.035052: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,13]:2021-09-06 11:46:14.044101: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,13]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,13]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,13]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,13]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,13]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,13]:\n", - "Mon Sep 6 11:46:14 2021[1,6]:2021-09-06 11:46:14.051427: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,8]:2021-09-06 11:46:14.066023: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,8]:\n", - "Mon Sep 6 11:46:14 2021[1,8]:2021-09-06 11:46:14.073202: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,8]:2021-09-06 11:46:14.080723: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,8]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,8]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,8]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,8]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,8]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,8]:\n", - "Mon Sep 6 11:46:14 2021[1,1]:2021-09-06 11:46:14.110787: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,1]:\n", - "Mon Sep 6 11:46:14 2021[1,1]:2021-09-06 11:46:14.118317: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,1]:2021-09-06 11:46:14.125946: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,1]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,1]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,1]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,1]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,1]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,1]:\n", - "Mon Sep 6 11:46:14 2021[1,5]:2021-09-06 11:46:14.131987: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,5]:\n", - "Mon Sep 6 11:46:14 2021[1,5]:2021-09-06 11:46:14.138893: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,3]:2021-09-06 11:46:14.143929: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,5]:2021-09-06 11:46:14.146526: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,5]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,5]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,5]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,5]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,5]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,5]:\n", - "Mon Sep 6 11:46:14 2021[1,15]:2021-09-06 11:46:14.170109: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,15]:\n", - "Mon Sep 6 11:46:14 2021[1,11]:2021-09-06 11:46:14.176378: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,11]:\n", - "Mon Sep 6 11:46:14 2021[1,15]:2021-09-06 11:46:14.177822: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,11]:2021-09-06 11:46:14.184029: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,15]:2021-09-06 11:46:14.186611: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,15]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,15]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,15]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,15]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,15]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:14 2021[1,15]:\n", - "Mon Sep 6 11:46:14 2021[1,11]:2021-09-06 11:46:14.192490: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,11]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,11]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,11]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,11]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,11]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,11]:\n", - "Mon Sep 6 11:46:14 2021[1,6]:2021-09-06 11:46:14.235507: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,6]:\n", - "Mon Sep 6 11:46:14 2021[1,6]:2021-09-06 11:46:14.242545: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,2]:2021-09-06 11:46:14.242914: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for trace.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.trace.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,6]:2021-09-06 11:46:14.249229: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,6]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,6]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,6]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,6]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,6]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,6]:\n", - "Mon Sep 6 11:46:14 2021[1,4]:2021-09-06 11:46:14.293566: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,4]:\n", - "Mon Sep 6 11:46:14 2021[1,4]:2021-09-06 11:46:14.301188: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,4]:2021-09-06 11:46:14.310530: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,4]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,4]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,4]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,4]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,4]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,4]:\n", - "Mon Sep 6 11:46:14 2021[1,3]:2021-09-06 11:46:14.330532: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,3]:\n", - "Mon Sep 6 11:46:14 2021[1,3]:2021-09-06 11:46:14.339903: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,3]:2021-09-06 11:46:14.347180: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,3]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,3]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,3]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,3]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,3]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,3]:\n", - "Mon Sep 6 11:46:14 2021[1,2]:2021-09-06 11:46:14.471034: I tensorflow/core/profiler/rpc/client/save_profile.cc:136] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,2]:\n", - "Mon Sep 6 11:46:14 2021[1,2]:2021-09-06 11:46:14.477906: I tensorflow/core/profiler/rpc/client/save_profile.cc:142] Dumped gzipped tool data for memory_profile.json.gz to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.memory_profile.json.gz\n", - "Mon Sep 6 11:46:14 2021[1,2]:2021-09-06 11:46:14.491195: I tensorflow/core/profiler/rpc/client/capture_profile.cc:251] Creating directory: tf_logs/plugins/profile/2021_09_06_11_46_12\n", - "Mon Sep 6 11:46:14 2021[1,2]:Dumped tool data for xplane.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.xplane.pb\n", - "Mon Sep 6 11:46:14 2021[1,2]:Dumped tool data for overview_page.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.overview_page.pb\n", - "Mon Sep 6 11:46:14 2021[1,2]:Dumped tool data for input_pipeline.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.input_pipeline.pb\n", - "Mon Sep 6 11:46:14 2021[1,2]:Dumped tool data for tensorflow_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.tensorflow_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,2]:Dumped tool data for kernel_stats.pb to tf_logs/plugins/profile/2021_09_06_11_46_12/dgx2h0194.kernel_stats.pb\n", - "Mon Sep 6 11:46:14 2021[1,2]:\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:16 2021[1,0]: 5/4000 [..............................]Mon Sep 6 11:46:16 2021[1,0]: - ETA: 4:44:11 - loss: 1.1971 - auc: 0.5447Mon Sep 6 11:46:21 2021[1,0]:>:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:21 2021[1,5]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5142s vs `on_train_batch_end` time: 2.2162s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,15]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4938s vs `on_train_batch_end` time: 2.2278s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,9]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5230s vs `on_train_batch_end` time: 2.1673s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,12]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5441s vs `on_train_batch_end` time: 2.1769s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,8]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5099s vs `on_train_batch_end` time: 2.2067s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,6]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4587s vs `on_train_batch_end` time: 2.2470s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,10]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.6162s vs `on_train_batch_end` time: 2.0815s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,4]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4682s vs `on_train_batch_end` time: 2.2509s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,14]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5344s vs `on_train_batch_end` time: 2.1920s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,13]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5144s vs `on_train_batch_end` time: 2.2132s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,1]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4933s vs `on_train_batch_end` time: 2.2237s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,3]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4516s vs `on_train_batch_end` time: 2.2473s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,7]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.6179s vs `on_train_batch_end` time: 2.1218s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,11]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5059s vs `on_train_batch_end` time: 2.2149s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,2]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.4030s vs `on_train_batch_end` time: 2.2793s). Check your callbacks.\n", - "Mon Sep 6 11:46:21 2021[1,0]:WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 1.5182s vs `on_train_batch_end` time: 2.1593s). Check your callbacks.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:46:45 2021[1,0]: 11/4000 [..............................]Mon Sep 6 11:46:45 2021[1,0]: - ETA: 5:01:18 - loss: 0.9724 - auc: 0.5378Mon Sep 6 11:46:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:47:41 2021[1,0]: 21/4000 [..............................]Mon Sep 6 11:47:41 2021[1,0]: - ETA: 5:37:25 - loss: 0.7117 - auc: 0.5280Mon Sep 6 11:47:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:48:44 2021[1,0]: 31/4000 [..............................]Mon Sep 6 11:48:44 2021[1,0]: - ETA: 6:02:07 - loss: 0.5560 - auc: 0.5265Mon Sep 6 11:48:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:49:44 2021[1,0]: 41/4000 [..............................]Mon Sep 6 11:49:44 2021[1,0]: - ETA: 6:10:48 - loss: 0.4611 - auc: 0.5275Mon Sep 6 11:49:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:50:42 2021[1,0]: 50/4000 [..............................]Mon Sep 6 11:50:42 2021[1,0]: - ETA: 6:20:05 - loss: 0.4050 - auc: 0.5309Mon Sep 6 11:50:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:51:41 2021[1,0]: 59/4000 [..............................]Mon Sep 6 11:51:41 2021[1,0]: - ETA: 6:26:39 - loss: 0.3650 - auc: 0.5373Mon Sep 6 11:51:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:52:44 2021[1,0]: 68/4000 [..............................]Mon Sep 6 11:52:44 2021[1,0]: - ETA: 6:35:30 - loss: 0.3352 - auc: 0.5462Mon Sep 6 11:52:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:53:40 2021[1,0]: 76/4000 [..............................]Mon Sep 6 11:53:40 2021[1,0]: - ETA: 6:41:37 - loss: 0.3143 - auc: 0.5561Mon Sep 6 11:53:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:54:38 2021[1,0]: 84/4000 [..............................]Mon Sep 6 11:54:38 2021[1,0]: - ETA: 6:48:12 - loss: 0.2972 - auc: 0.5662Mon Sep 6 11:54:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:55:44 2021[1,0]: 93/4000 [..............................]Mon Sep 6 11:55:44 2021[1,0]: - ETA: 6:53:56 - loss: 0.2815 - auc: 0.5771Mon Sep 6 11:55:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:56:37 2021[1,0]: 100/4000 [..............................]Mon Sep 6 11:56:37 2021[1,0]: - ETA: 6:58:55 - loss: 0.2710 - auc: 0.5854Mon Sep 6 11:56:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:57:39 2021[1,0]: 108/4000 [..............................]Mon Sep 6 11:57:39 2021[1,0]: - ETA: 7:04:18 - loss: 0.2609 - auc: 0.5939Mon Sep 6 11:57:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:58:42 2021[1,0]: 116/4000 [..............................]Mon Sep 6 11:58:42 2021[1,0]: - ETA: 7:09:03 - loss: 0.2521 - auc: 0.6023Mon Sep 6 11:58:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 11:59:37 2021[1,0]: 123/4000 [..............................]Mon Sep 6 11:59:37 2021[1,0]: - ETA: 7:13:04 - loss: 0.2452 - auc: 0.6090Mon Sep 6 11:59:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:00:42 2021[1,0]: 131/4000 [..............................]Mon Sep 6 12:00:42 2021[1,0]: - ETA: 7:17:40 - loss: 0.2382 - auc: 0.6162Mon Sep 6 12:00:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:01:39 2021[1,0]: 138/4000 [>.............................]Mon Sep 6 12:01:39 2021[1,0]: - ETA: 7:21:24 - loss: 0.2328 - auc: 0.6220Mon Sep 6 12:01:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:02:37 2021[1,0]: 145/4000 [>.............................]Mon Sep 6 12:02:37 2021[1,0]: - ETA: 7:25:19 - loss: 0.2279 - auc: 0.6274Mon Sep 6 12:02:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:03:37 2021[1,0]: 152/4000 [>.............................]Mon Sep 6 12:03:37 2021[1,0]: - ETA: 7:29:15 - loss: 0.2233 - auc: 0.6327Mon Sep 6 12:03:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:04:36 2021[1,0]: 159/4000 [>.............................]Mon Sep 6 12:04:36 2021[1,0]: - ETA: 7:32:18 - loss: 0.2192 - auc: 0.6377Mon Sep 6 12:04:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:05:43 2021[1,0]: 167/4000 [>.............................]Mon Sep 6 12:05:43 2021[1,0]: - ETA: 7:35:26 - loss: 0.2149 - auc: 0.6427Mon Sep 6 12:05:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:06:42 2021[1,0]: 174/4000 [>.............................]Mon Sep 6 12:06:42 2021[1,0]: - ETA: 7:38:11 - loss: 0.2115 - auc: 0.6469Mon Sep 6 12:06:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:07:42 2021[1,0]: 181/4000 [>.............................]Mon Sep 6 12:07:42 2021[1,0]: - ETA: 7:40:34 - loss: 0.2084 - auc: 0.6507Mon Sep 6 12:07:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:08:41 2021[1,0]: 188/4000 [>.............................]Mon Sep 6 12:08:41 2021[1,0]: - ETA: 7:42:41 - loss: 0.2055 - auc: 0.6545Mon Sep 6 12:08:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:09:40 2021[1,0]: 195/4000 [>.............................] - ETA: 7:44:22 - loss: 0.2027 - auc: 0.6581Mon Sep 6 12:09:49 2021[1,0]:Mon Sep 6 12:09:32 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:10:40 2021[1,0]: 202/4000 [>.............................]Mon Sep 6 12:10:40 2021[1,0]: - ETA: 7:46:12 - loss: 0.2002 - auc: 0.6614Mon Sep 6 12:10:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:11:40 2021[1,0]: 209/4000 [>.............................]Mon Sep 6 12:11:40 2021[1,0]: - ETA: 7:47:50 - loss: 0.1978 - auc: 0.6646Mon Sep 6 12:11:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:12:39 2021[1,0]: 216/4000 [>.............................]Mon Sep 6 12:12:39 2021[1,0]: - ETA: 7:49:20 - loss: 0.1956 - auc: 0.6675Mon Sep 6 12:12:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:13:40 2021[1,0]: 223/4000 [>.............................]Mon Sep 6 12:13:40 2021[1,0]: - ETA: 7:50:49 - loss: 0.1935 - auc: 0.6702Mon Sep 6 12:13:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:14:38 2021[1,0]: 230/4000 [>.............................]Mon Sep 6 12:14:38 2021[1,0]: - ETA: 7:51:37 - loss: 0.1916 - auc: 0.6730Mon Sep 6 12:14:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:15:38 2021[1,0]: 237/4000 [>.............................]Mon Sep 6 12:15:38 2021[1,0]: - ETA: 7:52:41 - loss: 0.1897 - auc: 0.6754Mon Sep 6 12:15:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:16:38 2021[1,0]: 244/4000 [>.............................]Mon Sep 6 12:16:38 2021[1,0]: - ETA: 7:53:46 - loss: 0.1880 - auc: 0.6779Mon Sep 6 12:16:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:17:38 2021[1,0]: 251/4000 [>.............................]Mon Sep 6 12:17:38 2021[1,0]: - ETA: 7:54:34 - loss: 0.1864 - auc: 0.6802Mon Sep 6 12:17:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:18:37 2021[1,0]: 258/4000 [>.............................]Mon Sep 6 12:18:37 2021[1,0]: - ETA: 7:55:03 - loss: 0.1848 - auc: 0.6824Mon Sep 6 12:18:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:19:37 2021[1,0]: 265/4000 [>.............................]Mon Sep 6 12:19:37 2021[1,0]: - ETA: 7:55:43 - loss: 0.1832 - auc: 0.6846Mon Sep 6 12:19:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 272/4000 [=>............................]Mon Sep 6 12:20:37 2021[1,0]: - ETA: 7:56:22 - loss: 0.1818 - auc: 0.6867Mon Sep 6 12:20:46 2021[1,0]:Mon Sep 6 12:20:20 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 279/4000 [=>............................]Mon Sep 6 12:21:38 2021[1,0]: - ETA: 7:57:08 - loss: 0.1804 - auc: 0.6887Mon Sep 6 12:21:47 2021[1,0]:Mon Sep 6 12:21:29 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:22:38 2021[1,0]: 286/4000 [=>............................]Mon Sep 6 12:22:38 2021[1,0]: - ETA: 7:57:26 - loss: 0.1791 - auc: 0.6906Mon Sep 6 12:22:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:23:38 2021[1,0]: 293/4000 [=>............................]Mon Sep 6 12:23:38 2021[1,0]: - ETA: 7:57:59 - loss: 0.1779 - auc: 0.6924Mon Sep 6 12:23:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:24:40 2021[1,0]: 300/4000 [=>............................]Mon Sep 6 12:24:40 2021[1,0]: - ETA: 7:58:35 - loss: 0.1767 - auc: 0.6941Mon Sep 6 12:24:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:25:40 2021[1,0]: 307/4000 [=>............................]Mon Sep 6 12:25:40 2021[1,0]: - ETA: 7:58:54 - loss: 0.1756 - auc: 0.6957Mon Sep 6 12:25:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:26:40 2021[1,0]: 314/4000 [=>............................]Mon Sep 6 12:26:40 2021[1,0]: - ETA: 7:59:03 - loss: 0.1745 - auc: 0.6973Mon Sep 6 12:26:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:27:40 2021[1,0]: 321/4000 [=>............................]Mon Sep 6 12:27:40 2021[1,0]: - ETA: 7:59:04 - loss: 0.1735 - auc: 0.6988Mon Sep 6 12:27:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:28:40 2021[1,0]: 328/4000 [=>............................]Mon Sep 6 12:28:40 2021[1,0]: - ETA: 7:59:18 - loss: 0.1726 - auc: 0.7003Mon Sep 6 12:28:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:29:42 2021[1,0]: 335/4000 [=>............................]Mon Sep 6 12:29:42 2021[1,0]: - ETA: 7:59:35 - loss: 0.1716 - auc: 0.7017Mon Sep 6 12:29:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:30:42 2021[1,0]: 342/4000 [=>............................]Mon Sep 6 12:30:42 2021[1,0]: - ETA: 7:59:39 - loss: 0.1707 - auc: 0.7031Mon Sep 6 12:30:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:31:42 2021[1,0]: 349/4000 [=>............................]Mon Sep 6 12:31:42 2021[1,0]: - ETA: 7:59:34 - loss: 0.1698 - auc: 0.7044Mon Sep 6 12:31:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:32:43 2021[1,0]: 356/4000 [=>............................]Mon Sep 6 12:32:43 2021[1,0]: - ETA: 7:59:36 - loss: 0.1689 - auc: 0.7058Mon Sep 6 12:32:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:33:36 2021[1,0]: 362/4000 [=>............................]Mon Sep 6 12:33:36 2021[1,0]: - ETA: 7:59:43 - loss: 0.1683 - auc: 0.7069Mon Sep 6 12:33:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:34:37 2021[1,0]: 369/4000 [=>............................]Mon Sep 6 12:34:37 2021[1,0]: - ETA: 7:59:48 - loss: 0.1674 - auc: 0.7082Mon Sep 6 12:34:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:35:38 2021[1,0]: 376/4000 [=>............................]Mon Sep 6 12:35:38 2021[1,0]: - ETA: 7:59:40 - loss: 0.1667 - auc: 0.7093Mon Sep 6 12:35:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:36:37 2021[1,0]: 383/4000 [=>............................]Mon Sep 6 12:36:37 2021[1,0]: - ETA: 7:59:26 - loss: 0.1660 - auc: 0.7106Mon Sep 6 12:36:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:37:39 2021[1,0]: 390/4000 [=>............................]Mon Sep 6 12:37:39 2021[1,0]: - ETA: 7:59:27 - loss: 0.1653 - auc: 0.7117Mon Sep 6 12:37:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:38:40 2021[1,0]: 397/4000 [=>............................]Mon Sep 6 12:38:40 2021[1,0]: - ETA: 7:59:20 - loss: 0.1646 - auc: 0.7127Mon Sep 6 12:38:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:39:42 2021[1,0]: 404/4000 [==>...........................]Mon Sep 6 12:39:42 2021[1,0]: - ETA: 7:59:13 - loss: 0.1640 - auc: 0.7137Mon Sep 6 12:39:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:40:42 2021[1,0]: 411/4000 [==>...........................]Mon Sep 6 12:40:42 2021[1,0]: - ETA: 7:58:54 - loss: 0.1633 - auc: 0.7148Mon Sep 6 12:40:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:41:44 2021[1,0]: 418/4000 [==>...........................]Mon Sep 6 12:41:44 2021[1,0]: - ETA: 7:58:49 - loss: 0.1627 - auc: 0.7157Mon Sep 6 12:41:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:42:36 2021[1,0]: 424/4000 [==>...........................]Mon Sep 6 12:42:36 2021[1,0]: - ETA: 7:58:35 - loss: 0.1622 - auc: 0.7165Mon Sep 6 12:42:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:43:36 2021[1,0]: 431/4000 [==>...........................]Mon Sep 6 12:43:36 2021[1,0]: - ETA: 7:58:09 - loss: 0.1617 - auc: 0.7174Mon Sep 6 12:43:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:44:39 2021[1,0]: 438/4000 [==>...........................]Mon Sep 6 12:44:39 2021[1,0]: - ETA: 7:58:06 - loss: 0.1611 - auc: 0.7183Mon Sep 6 12:44:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:45:40 2021[1,0]: 445/4000 [==>...........................]Mon Sep 6 12:45:40 2021[1,0]: - ETA: 7:57:50 - loss: 0.1606 - auc: 0.7192Mon Sep 6 12:45:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:46:42 2021[1,0]: 452/4000 [==>...........................]Mon Sep 6 12:46:42 2021[1,0]: - ETA: 7:57:34 - loss: 0.1601 - auc: 0.7201Mon Sep 6 12:46:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:47:44 2021[1,0]: 459/4000 [==>...........................]Mon Sep 6 12:47:44 2021[1,0]: - ETA: 7:57:19 - loss: 0.1596 - auc: 0.7209Mon Sep 6 12:47:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:48:36 2021[1,0]: 465/4000 [==>...........................]Mon Sep 6 12:48:36 2021[1,0]: - ETA: 7:56:58 - loss: 0.1591 - auc: 0.7215Mon Sep 6 12:48:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:49:37 2021[1,0]: 472/4000 [==>...........................]Mon Sep 6 12:49:37 2021[1,0]: - ETA: 7:56:33 - loss: 0.1587 - auc: 0.7223Mon Sep 6 12:49:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:50:36 2021[1,0]: 479/4000 [==>...........................]Mon Sep 6 12:50:36 2021[1,0]: - ETA: 7:55:58 - loss: 0.1582 - auc: 0.7231Mon Sep 6 12:50:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:51:37 2021[1,0]: 486/4000 [==>...........................]Mon Sep 6 12:51:37 2021[1,0]: - ETA: 7:55:26 - loss: 0.1577 - auc: 0.7239Mon Sep 6 12:51:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:52:38 2021[1,0]: 493/4000 [==>...........................]Mon Sep 6 12:52:38 2021[1,0]: - ETA: 7:55:02 - loss: 0.1573 - auc: 0.7246Mon Sep 6 12:52:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:53:40 2021[1,0]: 500/4000 [==>...........................]Mon Sep 6 12:53:40 2021[1,0]: - ETA: 7:54:37 - loss: 0.1568 - auc: 0.7253Mon Sep 6 12:53:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:54:40 2021[1,0]: 507/4000 [==>...........................]Mon Sep 6 12:54:40 2021[1,0]: - ETA: 7:54:04 - loss: 0.1564 - auc: 0.7261Mon Sep 6 12:54:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:55:40 2021[1,0]: 514/4000 [==>...........................]Mon Sep 6 12:55:40 2021[1,0]: - ETA: 7:53:27 - loss: 0.1560 - auc: 0.7268Mon Sep 6 12:55:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:56:40 2021[1,0]: 521/4000 [==>...........................]Mon Sep 6 12:56:40 2021[1,0]: - ETA: 7:52:50 - loss: 0.1556 - auc: 0.7274Mon Sep 6 12:56:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:57:39 2021[1,0]: 528/4000 [==>...........................]Mon Sep 6 12:57:39 2021[1,0]: - ETA: 7:52:08 - loss: 0.1553 - auc: 0.7281Mon Sep 6 12:57:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:58:40 2021[1,0]: 535/4000 [===>..........................]Mon Sep 6 12:58:40 2021[1,0]: - ETA: 7:51:35 - loss: 0.1549 - auc: 0.7287Mon Sep 6 12:58:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 12:59:41 2021[1,0]: 542/4000 [===>..........................]Mon Sep 6 12:59:41 2021[1,0]: - ETA: 7:51:05 - loss: 0.1545 - auc: 0.7293Mon Sep 6 12:59:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:00:42 2021[1,0]: 549/4000 [===>..........................]Mon Sep 6 13:00:42 2021[1,0]: - ETA: 7:50:26 - loss: 0.1542 - auc: 0.7299Mon Sep 6 13:00:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 556/4000 [===>..........................]Mon Sep 6 13:01:41 2021[1,0]: - ETA: 7:49:40 - loss: 0.1538 - auc: 0.7305Mon Sep 6 13:01:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:02:41 2021[1,0]: 563/4000 [===>..........................]Mon Sep 6 13:02:41 2021[1,0]: - ETA: 7:49:01 - loss: 0.1535 - auc: 0.7311Mon Sep 6 13:02:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:03:40 2021[1,0]: 570/4000 [===>..........................]Mon Sep 6 13:03:40 2021[1,0]: - ETA: 7:48:17 - loss: 0.1531 - auc: 0.7316Mon Sep 6 13:03:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:04:38 2021[1,0]: 577/4000 [===>..........................]Mon Sep 6 13:04:38 2021[1,0]: - ETA: 7:47:19 - loss: 0.1528 - auc: 0.7322Mon Sep 6 13:04:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:05:42 2021[1,0]: 585/4000 [===>..........................]Mon Sep 6 13:05:42 2021[1,0]: - ETA: 7:46:07 - loss: 0.1524 - auc: 0.7328Mon Sep 6 13:05:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:06:43 2021[1,0]: 592/4000 [===>..........................]Mon Sep 6 13:06:43 2021[1,0]: - ETA: 7:45:28 - loss: 0.1521 - auc: 0.7333Mon Sep 6 13:06:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:07:43 2021[1,0]: 599/4000 [===>..........................]Mon Sep 6 13:07:43 2021[1,0]: - ETA: 7:44:49 - loss: 0.1518 - auc: 0.7338Mon Sep 6 13:07:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:08:44 2021[1,0]: 606/4000 [===>..........................]Mon Sep 6 13:08:44 2021[1,0]: - ETA: 7:44:09 - loss: 0.1515 - auc: 0.7343Mon Sep 6 13:08:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:09:43 2021[1,0]: 613/4000 [===>..........................]Mon Sep 6 13:09:43 2021[1,0]: - ETA: 7:43:22 - loss: 0.1513 - auc: 0.7348Mon Sep 6 13:09:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:10:41 2021[1,0]: 620/4000 [===>..........................]Mon Sep 6 13:10:41 2021[1,0]: - ETA: 7:42:25 - loss: 0.1510 - auc: 0.7353Mon Sep 6 13:10:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:11:38 2021[1,0]: 627/4000 [===>..........................]Mon Sep 6 13:11:38 2021[1,0]: - ETA: 7:41:25 - loss: 0.1507 - auc: 0.7358Mon Sep 6 13:11:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:12:44 2021[1,0]: 635/4000 [===>..........................]Mon Sep 6 13:12:44 2021[1,0]: - ETA: 7:40:24 - loss: 0.1504 - auc: 0.7363Mon Sep 6 13:12:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:13:44 2021[1,0]: 642/4000 [===>..........................]Mon Sep 6 13:13:44 2021[1,0]: - ETA: 7:39:39 - loss: 0.1502 - auc: 0.7367Mon Sep 6 13:13:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:14:45 2021[1,0]: 649/4000 [===>..........................]Mon Sep 6 13:14:45 2021[1,0]: - ETA: 7:38:58 - loss: 0.1499 - auc: 0.7372Mon Sep 6 13:14:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 656/4000 [===>..........................]Mon Sep 6 13:15:45 2021[1,0]: - ETA: 7:38:14 - loss: 0.1497 - auc: 0.7377Mon Sep 6 13:15:54 2021[1,0]:Mon Sep 6 13:15:28 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:16:44 2021[1,0]: 663/4000 [===>..........................]Mon Sep 6 13:16:44 2021[1,0]: - ETA: 7:37:26 - loss: 0.1494 - auc: 0.7381Mon Sep 6 13:16:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:17:36 2021[1,0]: 669/4000 [====>.........................]Mon Sep 6 13:17:36 2021[1,0]: - ETA: 7:36:48 - loss: 0.1492 - auc: 0.7385Mon Sep 6 13:17:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 676/4000 [====>.........................]Mon Sep 6 13:18:38 2021[1,0]: - ETA: 7:36:12 - loss: 0.1490 - auc: 0.7389Mon Sep 6 13:18:47 2021[1,0]:Mon Sep 6 13:18:38 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 684/4000 [====>.........................]Mon Sep 6 13:19:45 2021[1,0]: - ETA: 7:35:13 - loss: 0.1487 - auc: 0.7394Mon Sep 6 13:19:54 2021[1,0]:Mon Sep 6 13:19:37 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:20:45 2021[1,0]: 691/4000 [====>.........................]Mon Sep 6 13:20:45 2021[1,0]: - ETA: 7:34:27 - loss: 0.1485 - auc: 0.7398Mon Sep 6 13:20:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:21:43 2021[1,0]: 698/4000 [====>.........................]Mon Sep 6 13:21:43 2021[1,0]: - ETA: 7:33:32 - loss: 0.1483 - auc: 0.7402Mon Sep 6 13:21:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:22:41 2021[1,0]: 705/4000 [====>.........................]Mon Sep 6 13:22:41 2021[1,0]: - ETA: 7:32:35 - loss: 0.1481 - auc: 0.7406Mon Sep 6 13:22:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:23:46 2021[1,0]: 713/4000 [====>.........................]Mon Sep 6 13:23:46 2021[1,0]: - ETA: 7:31:21 - loss: 0.1478 - auc: 0.7410Mon Sep 6 13:23:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:24:43 2021[1,0]: 720/4000 [====>.........................]Mon Sep 6 13:24:43 2021[1,0]: - ETA: 7:30:24 - loss: 0.1476 - auc: 0.7414Mon Sep 6 13:24:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:25:43 2021[1,0]: 727/4000 [====>.........................]Mon Sep 6 13:25:43 2021[1,0]: - ETA: 7:29:35 - loss: 0.1474 - auc: 0.7417Mon Sep 6 13:25:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:26:44 2021[1,0]: 734/4000 [====>.........................]Mon Sep 6 13:26:44 2021[1,0]: - ETA: 7:28:51 - loss: 0.1472 - auc: 0.7421Mon Sep 6 13:26:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:27:37 2021[1,0]: 740/4000 [====>.........................]Mon Sep 6 13:27:37 2021[1,0]: - ETA: 7:28:19 - loss: 0.1470 - auc: 0.7424Mon Sep 6 13:27:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:28:38 2021[1,0]: 747/4000 [====>.........................]Mon Sep 6 13:28:38 2021[1,0]: - ETA: 7:27:33 - loss: 0.1469 - auc: 0.7427Mon Sep 6 13:28:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:29:39 2021[1,0]: 754/4000 [====>.........................]Mon Sep 6 13:29:39 2021[1,0]: - ETA: 7:26:52 - loss: 0.1467 - auc: 0.7431Mon Sep 6 13:29:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:30:38 2021[1,0]: 761/4000 [====>.........................]Mon Sep 6 13:30:38 2021[1,0]: - ETA: 7:25:59 - loss: 0.1465 - auc: 0.7434Mon Sep 6 13:30:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 768/4000 [====>.........................]Mon Sep 6 13:31:38 2021[1,0]: - ETA: 7:25:08 - loss: 0.1463 - auc: 0.7437Mon Sep 6 13:31:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 775/4000 [====>.........................]Mon Sep 6 13:32:37 2021[1,0]: - ETA: 7:24:18 - loss: 0.1461 - auc: 0.7441Mon Sep 6 13:32:46 2021[1,0]:Mon Sep 6 13:32:29 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:33:37 2021[1,0]: 782/4000 [====>.........................]Mon Sep 6 13:33:37 2021[1,0]: - ETA: 7:23:28 - loss: 0.1459 - auc: 0.7444Mon Sep 6 13:33:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:34:37 2021[1,0]: 789/4000 [====>.........................]Mon Sep 6 13:34:37 2021[1,0]: - ETA: 7:22:40 - loss: 0.1458 - auc: 0.7447Mon Sep 6 13:34:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:35:45 2021[1,0]: 797/4000 [====>.........................]Mon Sep 6 13:35:45 2021[1,0]: - ETA: 7:21:40 - loss: 0.1456 - auc: 0.7451Mon Sep 6 13:35:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 803/4000 [=====>........................]Mon Sep 6 13:36:38 2021[1,0]: - ETA: 7:21:02 - loss: 0.1454 - auc: 0.7454Mon Sep 6 13:36:46 2021[1,0]:Mon Sep 6 13:36:20 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:37:46 2021[1,0]: 811/4000 [=====>........................]Mon Sep 6 13:37:46 2021[1,0]: - ETA: 7:20:03 - loss: 0.1452 - auc: 0.7457Mon Sep 6 13:37:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:38:45 2021[1,0]: 818/4000 [=====>........................]Mon Sep 6 13:38:45 2021[1,0]: - ETA: 7:19:11 - loss: 0.1451 - auc: 0.7460Mon Sep 6 13:38:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:39:43 2021[1,0]: 825/4000 [=====>........................]Mon Sep 6 13:39:43 2021[1,0]: - ETA: 7:18:13 - loss: 0.1449 - auc: 0.7463Mon Sep 6 13:39:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:40:40 2021[1,0]: 832/4000 [=====>........................]Mon Sep 6 13:40:40 2021[1,0]: - ETA: 7:17:10 - loss: 0.1448 - auc: 0.7466Mon Sep 6 13:40:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 839/4000 [=====>........................]Mon Sep 6 13:41:39 2021[1,0]: - ETA: 7:16:15 - loss: 0.1446 - auc: 0.7469Mon Sep 6 13:41:47 2021[1,0]:Mon Sep 6 13:41:21 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:42:39 2021[1,0]: 846/4000 [=====>........................]Mon Sep 6 13:42:39 2021[1,0]: - ETA: 7:15:25 - loss: 0.1444 - auc: 0.7472Mon Sep 6 13:42:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:43:44 2021[1,0]: 854/4000 [=====>........................]Mon Sep 6 13:43:44 2021[1,0]: - ETA: 7:14:13 - loss: 0.1443 - auc: 0.7475Mon Sep 6 13:43:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:44:42 2021[1,0]: 861/4000 [=====>........................]Mon Sep 6 13:44:42 2021[1,0]: - ETA: 7:13:19 - loss: 0.1441 - auc: 0.7478Mon Sep 6 13:44:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:45:43 2021[1,0]: 868/4000 [=====>........................]Mon Sep 6 13:45:43 2021[1,0]: - ETA: 7:12:32 - loss: 0.1440 - auc: 0.7481Mon Sep 6 13:45:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:46:43 2021[1,0]: 875/4000 [=====>........................]Mon Sep 6 13:46:43 2021[1,0]: - ETA: 7:11:40 - loss: 0.1438 - auc: 0.7483Mon Sep 6 13:46:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:47:43 2021[1,0]: 882/4000 [=====>........................]Mon Sep 6 13:47:43 2021[1,0]: - ETA: 7:10:49 - loss: 0.1437 - auc: 0.7486Mon Sep 6 13:47:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:48:44 2021[1,0]: 889/4000 [=====>........................]Mon Sep 6 13:48:44 2021[1,0]: - ETA: 7:10:00 - loss: 0.1435 - auc: 0.7489Mon Sep 6 13:48:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:49:43 2021[1,0]: 896/4000 [=====>........................]Mon Sep 6 13:49:43 2021[1,0]: - ETA: 7:09:06 - loss: 0.1434 - auc: 0.7491Mon Sep 6 13:49:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:50:41 2021[1,0]: 903/4000 [=====>........................]Mon Sep 6 13:50:41 2021[1,0]: - ETA: 7:08:08 - loss: 0.1433 - auc: 0.7494Mon Sep 6 13:50:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:51:39 2021[1,0]: 910/4000 [=====>........................]Mon Sep 6 13:51:39 2021[1,0]: - ETA: 7:07:11 - loss: 0.1431 - auc: 0.7496Mon Sep 6 13:51:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:52:41 2021[1,0]: 917/4000 [=====>........................]Mon Sep 6 13:52:41 2021[1,0]: - ETA: 7:06:25 - loss: 0.1430 - auc: 0.7498Mon Sep 6 13:52:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:53:42 2021[1,0]: 924/4000 [=====>........................]Mon Sep 6 13:53:42 2021[1,0]: - ETA: 7:05:35 - loss: 0.1429 - auc: 0.7501Mon Sep 6 13:53:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 931/4000 [=====>........................]Mon Sep 6 13:54:43 2021[1,0]: - ETA: 7:04:47 - loss: 0.1427 - auc: 0.7503Mon Sep 6 13:54:51 2021[1,0]:Mon Sep 6 13:54:34 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:55:43 2021[1,0]: 938/4000 [======>.......................]Mon Sep 6 13:55:43 2021[1,0]: - ETA: 7:03:56 - loss: 0.1426 - auc: 0.7505Mon Sep 6 13:55:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:56:43 2021[1,0]: 945/4000 [======>.......................]Mon Sep 6 13:56:43 2021[1,0]: - ETA: 7:03:04 - loss: 0.1425 - auc: 0.7508Mon Sep 6 13:56:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 952/4000 [======>.......................]Mon Sep 6 13:57:43 2021[1,0]: - ETA: 7:02:11 - loss: 0.1424 - auc: 0.7510Mon Sep 6 13:57:51 2021[1,0]:Mon Sep 6 13:57:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:58:42 2021[1,0]: 959/4000 [======>.......................]Mon Sep 6 13:58:42 2021[1,0]: - ETA: 7:01:16 - loss: 0.1422 - auc: 0.7512Mon Sep 6 13:58:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 13:59:42 2021[1,0]: 966/4000 [======>.......................]Mon Sep 6 13:59:42 2021[1,0]: - ETA: 7:00:24 - loss: 0.1421 - auc: 0.7515Mon Sep 6 13:59:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 973/4000 [======>.......................]Mon Sep 6 14:00:40 2021[1,0]: - ETA: 6:59:25 - loss: 0.1420 - auc: 0.7517Mon Sep 6 14:00:48 2021[1,0]:Mon Sep 6 14:00:40 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:01:40 2021[1,0]: 980/4000 [======>.......................]Mon Sep 6 14:01:40 2021[1,0]: - ETA: 6:58:30 - loss: 0.1419 - auc: 0.7519Mon Sep 6 14:01:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:02:39 2021[1,0]: 987/4000 [======>.......................]Mon Sep 6 14:02:39 2021[1,0]: - ETA: 6:57:34 - loss: 0.1418 - auc: 0.7521Mon Sep 6 14:02:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:03:46 2021[1,0]: 995/4000 [======>.......................]Mon Sep 6 14:03:46 2021[1,0]: - ETA: 6:56:32 - loss: 0.1416 - auc: 0.7524Mon Sep 6 14:03:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:04:45 2021[1,0]:1002/4000 [======>.......................]Mon Sep 6 14:04:45 2021[1,0]: - ETA: 6:55:34 - loss: 0.1415 - auc: 0.7526Mon Sep 6 14:04:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:05:45 2021[1,0]:1009/4000 [======>.......................]Mon Sep 6 14:05:45 2021[1,0]: - ETA: 6:54:42 - loss: 0.1414 - auc: 0.7528Mon Sep 6 14:05:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:06:45 2021[1,0]:1016/4000 [======>.......................]Mon Sep 6 14:06:45 2021[1,0]: - ETA: 6:53:49 - loss: 0.1413 - auc: 0.7530Mon Sep 6 14:06:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:07:45 2021[1,0]:1023/4000 [======>.......................]Mon Sep 6 14:07:45 2021[1,0]: - ETA: 6:52:55 - loss: 0.1412 - auc: 0.7532Mon Sep 6 14:07:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1030/4000 [======>.......................]Mon Sep 6 14:08:45 2021[1,0]: - ETA: 6:52:02 - loss: 0.1411 - auc: 0.7534Mon Sep 6 14:08:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:09:44 2021[1,0]:1037/4000 [======>.......................]Mon Sep 6 14:09:44 2021[1,0]: - ETA: 6:51:06 - loss: 0.1410 - auc: 0.7536Mon Sep 6 14:09:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1044/4000 [======>.......................]Mon Sep 6 14:10:42 2021[1,0]: - ETA: 6:50:08 - loss: 0.1409 - auc: 0.7538Mon Sep 6 14:10:51 2021[1,0]:Mon Sep 6 14:10:25 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:11:41 2021[1,0]:1051/4000 [======>.......................]Mon Sep 6 14:11:41 2021[1,0]: - ETA: 6:49:12 - loss: 0.1408 - auc: 0.7540Mon Sep 6 14:11:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:12:41 2021[1,0]:1058/4000 [======>.......................]Mon Sep 6 14:12:41 2021[1,0]: - ETA: 6:48:18 - loss: 0.1407 - auc: 0.7542Mon Sep 6 14:12:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:13:42 2021[1,0]:1065/4000 [======>.......................]Mon Sep 6 14:13:42 2021[1,0]: - ETA: 6:47:28 - loss: 0.1406 - auc: 0.7544Mon Sep 6 14:13:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1072/4000 [=======>......................]Mon Sep 6 14:14:43 2021[1,0]: - ETA: 6:46:35 - loss: 0.1405 - auc: 0.7546Mon Sep 6 14:14:51 2021[1,0]:Mon Sep 6 14:14:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:15:42 2021[1,0]:1079/4000 [=======>......................]Mon Sep 6 14:15:42 2021[1,0]: - ETA: 6:45:40 - loss: 0.1404 - auc: 0.7548Mon Sep 6 14:15:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1086/4000 [=======>......................]Mon Sep 6 14:16:42 2021[1,0]: - ETA: 6:44:46 - loss: 0.1403 - auc: 0.7550Mon Sep 6 14:16:51 2021[1,0]:Mon Sep 6 14:16:42 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:17:42 2021[1,0]:1093/4000 [=======>......................]Mon Sep 6 14:17:42 2021[1,0]: - ETA: 6:43:52 - loss: 0.1402 - auc: 0.7551Mon Sep 6 14:17:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:18:43 2021[1,0]:1100/4000 [=======>......................]Mon Sep 6 14:18:43 2021[1,0]: - ETA: 6:42:59 - loss: 0.1402 - auc: 0.7553Mon Sep 6 14:18:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:19:43 2021[1,0]:1107/4000 [=======>......................]Mon Sep 6 14:19:43 2021[1,0]: - ETA: 6:42:06 - loss: 0.1401 - auc: 0.7555Mon Sep 6 14:19:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:20:44 2021[1,0]:1114/4000 [=======>......................]Mon Sep 6 14:20:44 2021[1,0]: - ETA: 6:41:13 - loss: 0.1400 - auc: 0.7556Mon Sep 6 14:20:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:21:45 2021[1,0]:1121/4000 [=======>......................]Mon Sep 6 14:21:45 2021[1,0]: - ETA: 6:40:23 - loss: 0.1399 - auc: 0.7558Mon Sep 6 14:21:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:22:45 2021[1,0]:1128/4000 [=======>......................]Mon Sep 6 14:22:45 2021[1,0]: - ETA: 6:39:29 - loss: 0.1398 - auc: 0.7560Mon Sep 6 14:22:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:23:46 2021[1,0]:1135/4000 [=======>......................]Mon Sep 6 14:23:46 2021[1,0]: - ETA: 6:38:37 - loss: 0.1397 - auc: 0.7562Mon Sep 6 14:23:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:24:39 2021[1,0]:1141/4000 [=======>......................]Mon Sep 6 14:24:39 2021[1,0]: - ETA: 6:37:54 - loss: 0.1396 - auc: 0.7563Mon Sep 6 14:24:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:25:40 2021[1,0]:1148/4000 [=======>......................]Mon Sep 6 14:25:40 2021[1,0]: - ETA: 6:37:01 - loss: 0.1395 - auc: 0.7565Mon Sep 6 14:25:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1156/4000 [=======>......................]Mon Sep 6 14:26:46 2021[1,0]: - ETA: 6:35:52 - loss: 0.1394 - auc: 0.7567Mon Sep 6 14:26:54 2021[1,0]:Mon Sep 6 14:26:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:27:46 2021[1,0]:1163/4000 [=======>......................]Mon Sep 6 14:27:46 2021[1,0]: - ETA: 6:34:58 - loss: 0.1393 - auc: 0.7568Mon Sep 6 14:27:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1170/4000 [=======>......................]Mon Sep 6 14:28:46 2021[1,0]: - ETA: 6:34:04 - loss: 0.1393 - auc: 0.7570Mon Sep 6 14:28:55 2021[1,0]:Mon Sep 6 14:28:38 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:29:47 2021[1,0]:1177/4000 [=======>......................]Mon Sep 6 14:29:47 2021[1,0]: - ETA: 6:33:10 - loss: 0.1392 - auc: 0.7571Mon Sep 6 14:29:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:30:47 2021[1,0]:1184/4000 [=======>......................]Mon Sep 6 14:30:47 2021[1,0]: - ETA: 6:32:16 - loss: 0.1391 - auc: 0.7573Mon Sep 6 14:30:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1190/4000 [=======>......................]Mon Sep 6 14:31:39 2021[1,0]: - ETA: 6:31:30 - loss: 0.1390 - auc: 0.7575Mon Sep 6 14:31:47 2021[1,0]:Mon Sep 6 14:31:30 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:32:39 2021[1,0]:1197/4000 [=======>......................]Mon Sep 6 14:32:39 2021[1,0]: - ETA: 6:30:35 - loss: 0.1389 - auc: 0.7576Mon Sep 6 14:32:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:33:38 2021[1,0]:1204/4000 [========>.....................]Mon Sep 6 14:33:38 2021[1,0]: - ETA: 6:29:38 - loss: 0.1389 - auc: 0.7578Mon Sep 6 14:33:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:34:39 2021[1,0]:1211/4000 [========>.....................]Mon Sep 6 14:34:39 2021[1,0]: - ETA: 6:28:45 - loss: 0.1388 - auc: 0.7579Mon Sep 6 14:34:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:35:45 2021[1,0]:1219/4000 [========>.....................] - ETA: 6:27:36 - loss: 0.1387 - auc: 0.7581Mon Sep 6 14:35:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:36:44 2021[1,0]:1226/4000 [========>.....................]Mon Sep 6 14:36:44 2021[1,0]: - ETA: 6:26:39 - loss: 0.1386 - auc: 0.7582Mon Sep 6 14:36:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1233/4000 [========>.....................]Mon Sep 6 14:37:45 2021[1,0]: - ETA: 6:25:45 - loss: 0.1386 - auc: 0.7583Mon Sep 6 14:37:53 2021[1,0]:Mon Sep 6 14:37:19 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:38:44 2021[1,0]:1240/4000 [========>.....................]Mon Sep 6 14:38:44 2021[1,0]: - ETA: 6:24:47 - loss: 0.1385 - auc: 0.7585Mon Sep 6 14:38:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1247/4000 [========>.....................]Mon Sep 6 14:39:40 2021[1,0]: - ETA: 6:23:43 - loss: 0.1384 - auc: 0.7586Mon Sep 6 14:39:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:40:45 2021[1,0]:1255/4000 [========>.....................]Mon Sep 6 14:40:45 2021[1,0]: - ETA: 6:22:32 - loss: 0.1383 - auc: 0.7588Mon Sep 6 14:40:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:41:45 2021[1,0]:1262/4000 [========>.....................]Mon Sep 6 14:41:45 2021[1,0]: - ETA: 6:21:38 - loss: 0.1383 - auc: 0.7589Mon Sep 6 14:41:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:42:43 2021[1,0]:1269/4000 [========>.....................]Mon Sep 6 14:42:43 2021[1,0]: - ETA: 6:20:38 - loss: 0.1382 - auc: 0.7591Mon Sep 6 14:42:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1276/4000 [========>.....................]Mon Sep 6 14:43:43 2021[1,0]: - ETA: 6:19:41 - loss: 0.1381 - auc: 0.7592Mon Sep 6 14:43:51 2021[1,0]:Mon Sep 6 14:43:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:44:43 2021[1,0]:1283/4000 [========>.....................]Mon Sep 6 14:44:43 2021[1,0]: - ETA: 6:18:47 - loss: 0.1381 - auc: 0.7594Mon Sep 6 14:44:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:45:43 2021[1,0]:1290/4000 [========>.....................]Mon Sep 6 14:45:43 2021[1,0]: - ETA: 6:17:50 - loss: 0.1380 - auc: 0.7595Mon Sep 6 14:45:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:46:43 2021[1,0]:1297/4000 [========>.....................]Mon Sep 6 14:46:43 2021[1,0]: - ETA: 6:16:55 - loss: 0.1379 - auc: 0.7596Mon Sep 6 14:46:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1304/4000 [========>.....................]Mon Sep 6 14:47:43 2021[1,0]: - ETA: 6:16:01 - loss: 0.1379 - auc: 0.7598Mon Sep 6 14:47:52 2021[1,0]:Mon Sep 6 14:47:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:48:43 2021[1,0]:1311/4000 [========>.....................]Mon Sep 6 14:48:43 2021[1,0]: - ETA: 6:15:04 - loss: 0.1378 - auc: 0.7599Mon Sep 6 14:48:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1318/4000 [========>.....................]Mon Sep 6 14:49:43 2021[1,0]: - ETA: 6:14:09 - loss: 0.1377 - auc: 0.7601Mon Sep 6 14:49:52 2021[1,0]:Mon Sep 6 14:49:26 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:50:42 2021[1,0]:1325/4000 [========>.....................]Mon Sep 6 14:50:42 2021[1,0]: - ETA: 6:13:10 - loss: 0.1377 - auc: 0.7602Mon Sep 6 14:50:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:51:41 2021[1,0]:1332/4000 [========>.....................]Mon Sep 6 14:51:41 2021[1,0]: - ETA: 6:12:13 - loss: 0.1376 - auc: 0.7603Mon Sep 6 14:51:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:52:40 2021[1,0]:1339/4000 [=========>....................]Mon Sep 6 14:52:40 2021[1,0]: - ETA: 6:11:14 - loss: 0.1375 - auc: 0.7605Mon Sep 6 14:52:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:53:46 2021[1,0]:1347/4000 [=========>....................]Mon Sep 6 14:53:46 2021[1,0]: - ETA: 6:10:06 - loss: 0.1375 - auc: 0.7606Mon Sep 6 14:53:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:54:46 2021[1,0]:1354/4000 [=========>....................]Mon Sep 6 14:54:46 2021[1,0]: - ETA: 6:09:10 - loss: 0.1374 - auc: 0.7608Mon Sep 6 14:54:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:55:44 2021[1,0]:1361/4000 [=========>....................]Mon Sep 6 14:55:44 2021[1,0]: - ETA: 6:08:11 - loss: 0.1373 - auc: 0.7609Mon Sep 6 14:55:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:56:43 2021[1,0]:1368/4000 [=========>....................]Mon Sep 6 14:56:43 2021[1,0]: - ETA: 6:07:12 - loss: 0.1373 - auc: 0.7610Mon Sep 6 14:56:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1375/4000 [=========>....................]Mon Sep 6 14:57:41 2021[1,0]: - ETA: 6:06:13 - loss: 0.1372 - auc: 0.7611Mon Sep 6 14:57:50 2021[1,0]:Mon Sep 6 14:57:33 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1382/4000 [=========>....................]Mon Sep 6 14:58:41 2021[1,0]: - ETA: 6:05:17 - loss: 0.1372 - auc: 0.7613Mon Sep 6 14:58:49 2021[1,0]:Mon Sep 6 14:58:41 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 14:59:42 2021[1,0]:1389/4000 [=========>....................]Mon Sep 6 14:59:42 2021[1,0]: - ETA: 6:04:23 - loss: 0.1371 - auc: 0.7614Mon Sep 6 14:59:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:00:43 2021[1,0]:1396/4000 [=========>....................]Mon Sep 6 15:00:43 2021[1,0]: - ETA: 6:03:29 - loss: 0.1370 - auc: 0.7615Mon Sep 6 15:00:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:01:43 2021[1,0]:1403/4000 [=========>....................]Mon Sep 6 15:01:43 2021[1,0]: - ETA: 6:02:33 - loss: 0.1370 - auc: 0.7616Mon Sep 6 15:01:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1410/4000 [=========>....................]Mon Sep 6 15:02:43 2021[1,0]: - ETA: 6:01:37 - loss: 0.1369 - auc: 0.7618Mon Sep 6 15:02:52 2021[1,0]:Mon Sep 6 15:02:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:03:43 2021[1,0]:1417/4000 [=========>....................]Mon Sep 6 15:03:43 2021[1,0]: - ETA: 6:00:40 - loss: 0.1369 - auc: 0.7619Mon Sep 6 15:03:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:04:43 2021[1,0]:1424/4000 [=========>....................]Mon Sep 6 15:04:43 2021[1,0]: - ETA: 5:59:44 - loss: 0.1368 - auc: 0.7620Mon Sep 6 15:04:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:05:43 2021[1,0]:1431/4000 [=========>....................]Mon Sep 6 15:05:43 2021[1,0]: - ETA: 5:58:48 - loss: 0.1368 - auc: 0.7621Mon Sep 6 15:05:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:06:44 2021[1,0]:1438/4000 [=========>....................]Mon Sep 6 15:06:44 2021[1,0]: - ETA: 5:57:53 - loss: 0.1367 - auc: 0.7622Mon Sep 6 15:06:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:07:45 2021[1,0]:1445/4000 [=========>....................]Mon Sep 6 15:07:45 2021[1,0]: - ETA: 5:56:58 - loss: 0.1367 - auc: 0.7623Mon Sep 6 15:07:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1452/4000 [=========>....................]Mon Sep 6 15:08:46 2021[1,0]: - ETA: 5:56:04 - loss: 0.1366 - auc: 0.7624Mon Sep 6 15:08:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:09:45 2021[1,0]:1459/4000 [=========>....................]Mon Sep 6 15:09:45 2021[1,0]: - ETA: 5:55:05 - loss: 0.1365 - auc: 0.7625Mon Sep 6 15:09:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:10:44 2021[1,0]:1466/4000 [=========>....................]Mon Sep 6 15:10:44 2021[1,0]: - ETA: 5:54:08 - loss: 0.1365 - auc: 0.7627Mon Sep 6 15:10:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1473/4000 [==========>...................]Mon Sep 6 15:11:42 2021[1,0]: - ETA: 5:53:08 - loss: 0.1364 - auc: 0.7627Mon Sep 6 15:11:51 2021[1,0]:Mon Sep 6 15:11:33 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:12:47 2021[1,0]:1481/4000 [==========>...................]Mon Sep 6 15:12:47 2021[1,0]: - ETA: 5:51:58 - loss: 0.1364 - auc: 0.7629Mon Sep 6 15:12:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1488/4000 [==========>...................]Mon Sep 6 15:13:44 2021[1,0]: - ETA: 5:50:57 - loss: 0.1363 - auc: 0.7630Mon Sep 6 15:13:52 2021[1,0]:Mon Sep 6 15:13:36 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:14:40 2021[1,0]:1495/4000 [==========>...................]Mon Sep 6 15:14:40 2021[1,0]: - ETA: 5:49:53 - loss: 0.1363 - auc: 0.7631Mon Sep 6 15:14:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:15:40 2021[1,0]:1502/4000 [==========>...................]Mon Sep 6 15:15:40 2021[1,0]: - ETA: 5:48:57 - loss: 0.1362 - auc: 0.7632Mon Sep 6 15:15:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:16:41 2021[1,0]:1509/4000 [==========>...................]Mon Sep 6 15:16:41 2021[1,0]: - ETA: 5:48:02 - loss: 0.1362 - auc: 0.7633Mon Sep 6 15:16:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:17:41 2021[1,0]:1516/4000 [==========>...................]Mon Sep 6 15:17:41 2021[1,0]: - ETA: 5:47:05 - loss: 0.1361 - auc: 0.7634Mon Sep 6 15:17:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1523/4000 [==========>...................]Mon Sep 6 15:18:40 2021[1,0]: - ETA: 5:46:08 - loss: 0.1361 - auc: 0.7635Mon Sep 6 15:18:49 2021[1,0]:Mon Sep 6 15:18:32 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:19:48 2021[1,0]:1531/4000 [==========>...................]Mon Sep 6 15:19:48 2021[1,0]: - ETA: 5:45:01 - loss: 0.1360 - auc: 0.7636Mon Sep 6 15:19:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:20:45 2021[1,0]:1538/4000 [==========>...................]Mon Sep 6 15:20:45 2021[1,0]: - ETA: 5:44:00 - loss: 0.1360 - auc: 0.7637Mon Sep 6 15:20:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:21:46 2021[1,0]:1545/4000 [==========>...................] - ETA: 5:43:05 - loss: 0.1359 - auc: 0.7638Mon Sep 6 15:21:54 2021[1,0]:Mon Sep 6 15:21:20 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1552/4000 [==========>...................]Mon Sep 6 15:22:46 2021[1,0]: - ETA: 5:42:08 - loss: 0.1359 - auc: 0.7640Mon Sep 6 15:22:54 2021[1,0]:Mon Sep 6 15:22:37 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:23:45 2021[1,0]:1559/4000 [==========>...................]Mon Sep 6 15:23:45 2021[1,0]: - ETA: 5:41:10 - loss: 0.1358 - auc: 0.7640Mon Sep 6 15:23:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:24:44 2021[1,0]:1566/4000 [==========>...................]Mon Sep 6 15:24:44 2021[1,0]: - ETA: 5:40:12 - loss: 0.1358 - auc: 0.7641Mon Sep 6 15:24:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:25:42 2021[1,0]:1573/4000 [==========>...................]Mon Sep 6 15:25:42 2021[1,0]: - ETA: 5:39:12 - loss: 0.1357 - auc: 0.7642Mon Sep 6 15:25:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:26:48 2021[1,0]:1581/4000 [==========>...................]Mon Sep 6 15:26:48 2021[1,0]: - ETA: 5:38:04 - loss: 0.1357 - auc: 0.7643Mon Sep 6 15:26:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:27:47 2021[1,0]:1588/4000 [==========>...................]Mon Sep 6 15:27:47 2021[1,0]: - ETA: 5:37:06 - loss: 0.1356 - auc: 0.7645Mon Sep 6 15:27:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:28:48 2021[1,0]:1595/4000 [==========>...................]Mon Sep 6 15:28:48 2021[1,0]: - ETA: 5:36:10 - loss: 0.1356 - auc: 0.7646Mon Sep 6 15:28:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:29:47 2021[1,0]:1602/4000 [===========>..................]Mon Sep 6 15:29:47 2021[1,0]: - ETA: 5:35:12 - loss: 0.1356 - auc: 0.7647Mon Sep 6 15:29:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1609/4000 [===========>..................]Mon Sep 6 15:30:47 2021[1,0]: - ETA: 5:34:15 - loss: 0.1355 - auc: 0.7648Mon Sep 6 15:30:55 2021[1,0]:Mon Sep 6 15:30:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:31:45 2021[1,0]:1616/4000 [===========>..................]Mon Sep 6 15:31:45 2021[1,0]: - ETA: 5:33:16 - loss: 0.1355 - auc: 0.7649Mon Sep 6 15:31:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:32:44 2021[1,0]:1623/4000 [===========>..................]Mon Sep 6 15:32:44 2021[1,0]: - ETA: 5:32:17 - loss: 0.1354 - auc: 0.7650Mon Sep 6 15:32:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:33:43 2021[1,0]:1630/4000 [===========>..................]Mon Sep 6 15:33:43 2021[1,0]: - ETA: 5:31:19 - loss: 0.1354 - auc: 0.7651Mon Sep 6 15:33:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:34:43 2021[1,0]:1637/4000 [===========>..................]Mon Sep 6 15:34:43 2021[1,0]: - ETA: 5:30:21 - loss: 0.1353 - auc: 0.7651Mon Sep 6 15:34:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:35:43 2021[1,0]:1644/4000 [===========>..................]Mon Sep 6 15:35:43 2021[1,0]: - ETA: 5:29:24 - loss: 0.1353 - auc: 0.7652Mon Sep 6 15:35:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:36:41 2021[1,0]:1651/4000 [===========>..................]Mon Sep 6 15:36:41 2021[1,0]: - ETA: 5:28:25 - loss: 0.1352 - auc: 0.7653Mon Sep 6 15:36:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:37:47 2021[1,0]:1659/4000 [===========>..................]Mon Sep 6 15:37:47 2021[1,0]: - ETA: 5:27:16 - loss: 0.1352 - auc: 0.7654Mon Sep 6 15:37:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:38:44 2021[1,0]:1666/4000 [===========>..................]Mon Sep 6 15:38:44 2021[1,0]: - ETA: 5:26:15 - loss: 0.1352 - auc: 0.7655Mon Sep 6 15:38:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:39:42 2021[1,0]:1673/4000 [===========>..................]Mon Sep 6 15:39:42 2021[1,0]: - ETA: 5:25:15 - loss: 0.1351 - auc: 0.7656Mon Sep 6 15:39:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:40:48 2021[1,0]:1681/4000 [===========>..................]Mon Sep 6 15:40:48 2021[1,0]: - ETA: 5:24:07 - loss: 0.1351 - auc: 0.7657Mon Sep 6 15:40:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:41:40 2021[1,0]:1687/4000 [===========>..................]Mon Sep 6 15:41:40 2021[1,0]: - ETA: 5:23:19 - loss: 0.1350 - auc: 0.7658Mon Sep 6 15:41:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:42:41 2021[1,0]:1694/4000 [===========>..................]Mon Sep 6 15:42:41 2021[1,0]: - ETA: 5:22:23 - loss: 0.1350 - auc: 0.7659Mon Sep 6 15:42:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:43:41 2021[1,0]:1701/4000 [===========>..................]Mon Sep 6 15:43:41 2021[1,0]: - ETA: 5:21:26 - loss: 0.1349 - auc: 0.7660Mon Sep 6 15:43:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1708/4000 [===========>..................]Mon Sep 6 15:44:42 2021[1,0]: - ETA: 5:20:30 - loss: 0.1349 - auc: 0.7661Mon Sep 6 15:44:50 2021[1,0]:Mon Sep 6 15:44:33 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1715/4000 [===========>..................]Mon Sep 6 15:45:42 2021[1,0]: - ETA: 5:19:34 - loss: 0.1349 - auc: 0.7661Mon Sep 6 15:45:51 2021[1,0]:Mon Sep 6 15:45:42 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:46:43 2021[1,0]:1722/4000 [===========>..................]Mon Sep 6 15:46:43 2021[1,0]: - ETA: 5:18:38 - loss: 0.1348 - auc: 0.7662Mon Sep 6 15:46:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:47:44 2021[1,0]:1729/4000 [===========>..................]Mon Sep 6 15:47:44 2021[1,0]: - ETA: 5:17:42 - loss: 0.1348 - auc: 0.7663Mon Sep 6 15:47:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:48:44 2021[1,0]:1736/4000 [============>.................]Mon Sep 6 15:48:44 2021[1,0]: - ETA: 5:16:45 - loss: 0.1348 - auc: 0.7664Mon Sep 6 15:48:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:49:41 2021[1,0]:1743/4000 [============>.................]Mon Sep 6 15:49:41 2021[1,0]: - ETA: 5:15:44 - loss: 0.1347 - auc: 0.7665Mon Sep 6 15:49:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:50:45 2021[1,0]:1751/4000 [============>.................]Mon Sep 6 15:50:45 2021[1,0]: - ETA: 5:14:33 - loss: 0.1347 - auc: 0.7666Mon Sep 6 15:50:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:51:47 2021[1,0]:1759/4000 [============>.................]Mon Sep 6 15:51:47 2021[1,0]: - ETA: 5:13:19 - loss: 0.1346 - auc: 0.7667Mon Sep 6 15:51:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:52:43 2021[1,0]:1766/4000 [============>.................]Mon Sep 6 15:52:43 2021[1,0]: - ETA: 5:12:16 - loss: 0.1346 - auc: 0.7667Mon Sep 6 15:52:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:53:49 2021[1,0]:1774/4000 [============>.................]Mon Sep 6 15:53:49 2021[1,0]: - ETA: 5:11:08 - loss: 0.1346 - auc: 0.7668Mon Sep 6 15:53:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:54:48 2021[1,0]:1781/4000 [============>.................]Mon Sep 6 15:54:48 2021[1,0]: - ETA: 5:10:10 - loss: 0.1345 - auc: 0.7669Mon Sep 6 15:54:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:55:47 2021[1,0]:1788/4000 [============>.................]Mon Sep 6 15:55:47 2021[1,0]: - ETA: 5:09:12 - loss: 0.1345 - auc: 0.7670Mon Sep 6 15:55:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:56:46 2021[1,0]:1795/4000 [============>.................]Mon Sep 6 15:56:46 2021[1,0]: - ETA: 5:08:13 - loss: 0.1344 - auc: 0.7671Mon Sep 6 15:56:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:57:44 2021[1,0]:1802/4000 [============>.................]Mon Sep 6 15:57:44 2021[1,0]: - ETA: 5:07:13 - loss: 0.1344 - auc: 0.7671Mon Sep 6 15:57:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:58:43 2021[1,0]:1809/4000 [============>.................]Mon Sep 6 15:58:43 2021[1,0]: - ETA: 5:06:15 - loss: 0.1344 - auc: 0.7672Mon Sep 6 15:58:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 15:59:42 2021[1,0]:1816/4000 [============>.................]Mon Sep 6 15:59:42 2021[1,0]: - ETA: 5:05:17 - loss: 0.1343 - auc: 0.7673Mon Sep 6 15:59:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:00:41 2021[1,0]:1823/4000 [============>.................]Mon Sep 6 16:00:41 2021[1,0]: - ETA: 5:04:19 - loss: 0.1343 - auc: 0.7674Mon Sep 6 16:00:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:01:41 2021[1,0]:1830/4000 [============>.................]Mon Sep 6 16:01:41 2021[1,0]: - ETA: 5:03:21 - loss: 0.1343 - auc: 0.7675Mon Sep 6 16:01:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1838/4000 [============>.................]Mon Sep 6 16:02:49 2021[1,0]: - ETA: 5:02:15 - loss: 0.1342 - auc: 0.7676Mon Sep 6 16:02:57 2021[1,0]:Mon Sep 6 16:02:40 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:03:41 2021[1,0]:1844/4000 [============>.................]Mon Sep 6 16:03:41 2021[1,0]: - ETA: 5:01:27 - loss: 0.1342 - auc: 0.7676Mon Sep 6 16:03:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:04:41 2021[1,0]:1851/4000 [============>.................]Mon Sep 6 16:04:41 2021[1,0]: - ETA: 5:00:30 - loss: 0.1342 - auc: 0.7677Mon Sep 6 16:04:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:05:41 2021[1,0]:1858/4000 [============>.................]Mon Sep 6 16:05:41 2021[1,0]: - ETA: 4:59:32 - loss: 0.1341 - auc: 0.7678Mon Sep 6 16:05:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:06:41 2021[1,0]:1865/4000 [============>.................] - ETA: 4:58:35 - loss: 0.1341 - auc: 0.7679Mon Sep 6 16:06:49 2021[1,0]:Mon Sep 6 16:06:32 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:07:41 2021[1,0]:1872/4000 [=============>................]Mon Sep 6 16:07:41 2021[1,0]: - ETA: 4:57:38 - loss: 0.1341 - auc: 0.7679Mon Sep 6 16:07:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:08:49 2021[1,0]:1880/4000 [=============>................]Mon Sep 6 16:08:49 2021[1,0]: - ETA: 4:56:31 - loss: 0.1340 - auc: 0.7680Mon Sep 6 16:08:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:09:47 2021[1,0]:1887/4000 [=============>................]Mon Sep 6 16:09:47 2021[1,0]: - ETA: 4:55:32 - loss: 0.1340 - auc: 0.7681Mon Sep 6 16:09:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:10:44 2021[1,0]:1894/4000 [=============>................]Mon Sep 6 16:10:44 2021[1,0]: - ETA: 4:54:31 - loss: 0.1340 - auc: 0.7682Mon Sep 6 16:10:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:11:43 2021[1,0]:1901/4000 [=============>................]Mon Sep 6 16:11:43 2021[1,0]: - ETA: 4:53:33 - loss: 0.1339 - auc: 0.7682Mon Sep 6 16:11:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:12:49 2021[1,0]:1909/4000 [=============>................]Mon Sep 6 16:12:49 2021[1,0]: - ETA: 4:52:24 - loss: 0.1339 - auc: 0.7683Mon Sep 6 16:12:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:13:45 2021[1,0]:1916/4000 [=============>................]Mon Sep 6 16:13:45 2021[1,0]: - ETA: 4:51:23 - loss: 0.1339 - auc: 0.7684Mon Sep 6 16:13:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:14:44 2021[1,0]:1923/4000 [=============>................]Mon Sep 6 16:14:44 2021[1,0]: - ETA: 4:50:24 - loss: 0.1338 - auc: 0.7685Mon Sep 6 16:14:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:15:48 2021[1,0]:1931/4000 [=============>................]Mon Sep 6 16:15:48 2021[1,0]: - ETA: 4:49:15 - loss: 0.1338 - auc: 0.7686Mon Sep 6 16:15:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:16:46 2021[1,0]:1938/4000 [=============>................]Mon Sep 6 16:16:46 2021[1,0]: - ETA: 4:48:14 - loss: 0.1338 - auc: 0.7686Mon Sep 6 16:16:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:17:43 2021[1,0]:1945/4000 [=============>................]Mon Sep 6 16:17:43 2021[1,0]: - ETA: 4:47:14 - loss: 0.1337 - auc: 0.7687Mon Sep 6 16:17:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:18:49 2021[1,0]:1953/4000 [=============>................]Mon Sep 6 16:18:49 2021[1,0]: - ETA: 4:46:06 - loss: 0.1337 - auc: 0.7688Mon Sep 6 16:18:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:19:48 2021[1,0]:1960/4000 [=============>................]Mon Sep 6 16:19:48 2021[1,0]: - ETA: 4:45:07 - loss: 0.1337 - auc: 0.7689Mon Sep 6 16:19:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:20:49 2021[1,0]:1967/4000 [=============>................]Mon Sep 6 16:20:49 2021[1,0]: - ETA: 4:44:11 - loss: 0.1336 - auc: 0.7689Mon Sep 6 16:20:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:21:41 2021[1,0]:1973/4000 [=============>................]Mon Sep 6 16:21:41 2021[1,0]: - ETA: 4:43:22 - loss: 0.1336 - auc: 0.7690Mon Sep 6 16:21:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:22:49 2021[1,0]:1981/4000 [=============>................]Mon Sep 6 16:22:49 2021[1,0]: - ETA: 4:42:16 - loss: 0.1336 - auc: 0.7691Mon Sep 6 16:22:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:23:45 2021[1,0]:1988/4000 [=============>................]Mon Sep 6 16:23:45 2021[1,0]: - ETA: 4:41:15 - loss: 0.1335 - auc: 0.7692Mon Sep 6 16:23:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:24:49 2021[1,0]:1996/4000 [=============>................]Mon Sep 6 16:24:49 2021[1,0]: - ETA: 4:40:04 - loss: 0.1335 - auc: 0.7692Mon Sep 6 16:24:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2003/4000 [==============>...............]Mon Sep 6 16:25:44 2021[1,0]: - ETA: 4:39:02 - loss: 0.1335 - auc: 0.7693Mon Sep 6 16:25:51 2021[1,0]:Mon Sep 6 16:25:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:26:45 2021[1,0]:2011/4000 [==============>...............]Mon Sep 6 16:26:45 2021[1,0]: - ETA: 4:37:49 - loss: 0.1334 - auc: 0.7694Mon Sep 6 16:26:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2018/4000 [==============>...............]Mon Sep 6 16:27:42 2021[1,0]: - ETA: 4:36:48 - loss: 0.1334 - auc: 0.7695Mon Sep 6 16:27:50 2021[1,0]:Mon Sep 6 16:27:25 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:28:49 2021[1,0]:2026/4000 [==============>...............]Mon Sep 6 16:28:49 2021[1,0]: - ETA: 4:35:42 - loss: 0.1334 - auc: 0.7695Mon Sep 6 16:28:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:29:49 2021[1,0]:2033/4000 [==============>...............]Mon Sep 6 16:29:49 2021[1,0]: - ETA: 4:34:45 - loss: 0.1333 - auc: 0.7696Mon Sep 6 16:29:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:30:49 2021[1,0]:2040/4000 [==============>...............] - ETA: 4:33:47 - loss: 0.1333 - auc: 0.7696Mon Sep 6 16:30:58 2021[1,0]:Mon Sep 6 16:30:41 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:31:49 2021[1,0]:2047/4000 [==============>...............]Mon Sep 6 16:31:49 2021[1,0]: - ETA: 4:32:49 - loss: 0.1333 - auc: 0.7697Mon Sep 6 16:31:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:32:47 2021[1,0]:2054/4000 [==============>...............]Mon Sep 6 16:32:47 2021[1,0]: - ETA: 4:31:51 - loss: 0.1333 - auc: 0.7697Mon Sep 6 16:32:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:33:47 2021[1,0]:2061/4000 [==============>...............]Mon Sep 6 16:33:47 2021[1,0]: - ETA: 4:30:52 - loss: 0.1332 - auc: 0.7698Mon Sep 6 16:33:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2068/4000 [==============>...............]Mon Sep 6 16:34:45 2021[1,0]: - ETA: 4:29:54 - loss: 0.1332 - auc: 0.7699Mon Sep 6 16:34:54 2021[1,0]:Mon Sep 6 16:34:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:35:46 2021[1,0]:2075/4000 [==============>...............] - ETA: 4:28:57 - loss: 0.1332 - auc: 0.7699Mon Sep 6 16:35:54 2021[1,0]:Mon Sep 6 16:35:20 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:36:44 2021[1,0]:2082/4000 [==============>...............]Mon Sep 6 16:36:44 2021[1,0]: - ETA: 4:27:57 - loss: 0.1331 - auc: 0.7700Mon Sep 6 16:36:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:37:47 2021[1,0]:2090/4000 [==============>...............]Mon Sep 6 16:37:47 2021[1,0]: - ETA: 4:26:47 - loss: 0.1331 - auc: 0.7700Mon Sep 6 16:37:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2097/4000 [==============>...............]Mon Sep 6 16:38:43 2021[1,0]: - ETA: 4:25:46 - loss: 0.1331 - auc: 0.7701Mon Sep 6 16:38:51 2021[1,0]:Mon Sep 6 16:38:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2105/4000 [==============>...............]Mon Sep 6 16:39:48 2021[1,0]: - ETA: 4:24:37 - loss: 0.1331 - auc: 0.7702Mon Sep 6 16:39:57 2021[1,0]:Mon Sep 6 16:39:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:40:48 2021[1,0]:2112/4000 [==============>...............]Mon Sep 6 16:40:48 2021[1,0]: - ETA: 4:23:39 - loss: 0.1330 - auc: 0.7702Mon Sep 6 16:40:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:41:48 2021[1,0]:2119/4000 [==============>...............] - ETA: 4:22:42 - loss: 0.1330 - auc: 0.7703Mon Sep 6 16:41:57 2021[1,0]:Mon Sep 6 16:41:39 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:42:48 2021[1,0]:2126/4000 [==============>...............]Mon Sep 6 16:42:48 2021[1,0]: - ETA: 4:21:45 - loss: 0.1330 - auc: 0.7703Mon Sep 6 16:42:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:43:48 2021[1,0]:2133/4000 [==============>...............]Mon Sep 6 16:43:48 2021[1,0]: - ETA: 4:20:47 - loss: 0.1330 - auc: 0.7704Mon Sep 6 16:43:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:44:48 2021[1,0]:2140/4000 [===============>..............]Mon Sep 6 16:44:48 2021[1,0]: - ETA: 4:19:50 - loss: 0.1329 - auc: 0.7704Mon Sep 6 16:44:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:45:47 2021[1,0]:2147/4000 [===============>..............]Mon Sep 6 16:45:47 2021[1,0]: - ETA: 4:18:51 - loss: 0.1329 - auc: 0.7705Mon Sep 6 16:45:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:46:47 2021[1,0]:2154/4000 [===============>..............]Mon Sep 6 16:46:47 2021[1,0]: - ETA: 4:17:54 - loss: 0.1329 - auc: 0.7705Mon Sep 6 16:46:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:47:48 2021[1,0]:2161/4000 [===============>..............]Mon Sep 6 16:47:48 2021[1,0]: - ETA: 4:16:57 - loss: 0.1328 - auc: 0.7706Mon Sep 6 16:47:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2168/4000 [===============>..............]Mon Sep 6 16:48:47 2021[1,0]: - ETA: 4:15:58 - loss: 0.1328 - auc: 0.7707Mon Sep 6 16:48:55 2021[1,0]:Mon Sep 6 16:48:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:49:44 2021[1,0]:2175/4000 [===============>..............]Mon Sep 6 16:49:44 2021[1,0]: - ETA: 4:14:59 - loss: 0.1328 - auc: 0.7707Mon Sep 6 16:49:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:50:43 2021[1,0]:2182/4000 [===============>..............]Mon Sep 6 16:50:43 2021[1,0]: - ETA: 4:14:00 - loss: 0.1328 - auc: 0.7708Mon Sep 6 16:50:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:51:49 2021[1,0]:2190/4000 [===============>..............]Mon Sep 6 16:51:49 2021[1,0]: - ETA: 4:12:52 - loss: 0.1327 - auc: 0.7708Mon Sep 6 16:51:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:52:48 2021[1,0]:2197/4000 [===============>..............]Mon Sep 6 16:52:48 2021[1,0]: - ETA: 4:11:53 - loss: 0.1327 - auc: 0.7709Mon Sep 6 16:52:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:53:47 2021[1,0]:2204/4000 [===============>..............]Mon Sep 6 16:53:47 2021[1,0]: - ETA: 4:10:55 - loss: 0.1327 - auc: 0.7710Mon Sep 6 16:53:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:54:47 2021[1,0]:2211/4000 [===============>..............]Mon Sep 6 16:54:47 2021[1,0]: - ETA: 4:09:58 - loss: 0.1327 - auc: 0.7710Mon Sep 6 16:54:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2218/4000 [===============>..............]Mon Sep 6 16:55:49 2021[1,0]: - ETA: 4:09:02 - loss: 0.1326 - auc: 0.7711Mon Sep 6 16:55:57 2021[1,0]:Mon Sep 6 16:55:40 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:56:48 2021[1,0]:2225/4000 [===============>..............]Mon Sep 6 16:56:48 2021[1,0]: - ETA: 4:08:03 - loss: 0.1326 - auc: 0.7711Mon Sep 6 16:56:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:57:46 2021[1,0]:2232/4000 [===============>..............]Mon Sep 6 16:57:46 2021[1,0]: - ETA: 4:07:04 - loss: 0.1326 - auc: 0.7712Mon Sep 6 16:57:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:58:44 2021[1,0]:2239/4000 [===============>..............]Mon Sep 6 16:58:44 2021[1,0]: - ETA: 4:06:05 - loss: 0.1326 - auc: 0.7712Mon Sep 6 16:58:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 16:59:42 2021[1,0]:2246/4000 [===============>..............]Mon Sep 6 16:59:42 2021[1,0]: - ETA: 4:05:06 - loss: 0.1326 - auc: 0.7713Mon Sep 6 16:59:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2254/4000 [===============>..............]Mon Sep 6 17:00:48 2021[1,0]: - ETA: 4:03:58 - loss: 0.1325 - auc: 0.7713Mon Sep 6 17:00:56 2021[1,0]:Mon Sep 6 17:00:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:01:47 2021[1,0]:2261/4000 [===============>..............]Mon Sep 6 17:01:47 2021[1,0]: - ETA: 4:02:59 - loss: 0.1325 - auc: 0.7714Mon Sep 6 17:01:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:02:45 2021[1,0]:2268/4000 [================>.............]Mon Sep 6 17:02:45 2021[1,0]: - ETA: 4:02:00 - loss: 0.1325 - auc: 0.7714Mon Sep 6 17:02:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:03:43 2021[1,0]:2275/4000 [================>.............]Mon Sep 6 17:03:43 2021[1,0]: - ETA: 4:01:01 - loss: 0.1325 - auc: 0.7715Mon Sep 6 17:03:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:04:43 2021[1,0]:2282/4000 [================>.............] - ETA: 4:00:03 - loss: 0.1324 - auc: 0.7715Mon Sep 6 17:04:51 2021[1,0]:Mon Sep 6 17:04:17 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:05:44 2021[1,0]:2289/4000 [================>.............]Mon Sep 6 17:05:44 2021[1,0]: - ETA: 3:59:06 - loss: 0.1324 - auc: 0.7716Mon Sep 6 17:05:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:06:45 2021[1,0]:2296/4000 [================>.............]Mon Sep 6 17:06:45 2021[1,0]: - ETA: 3:58:09 - loss: 0.1324 - auc: 0.7716Mon Sep 6 17:06:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:07:46 2021[1,0]:2303/4000 [================>.............]Mon Sep 6 17:07:46 2021[1,0]: - ETA: 3:57:12 - loss: 0.1324 - auc: 0.7717Mon Sep 6 17:07:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:08:46 2021[1,0]:2310/4000 [================>.............]Mon Sep 6 17:08:46 2021[1,0]: - ETA: 3:56:14 - loss: 0.1324 - auc: 0.7717Mon Sep 6 17:08:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:09:46 2021[1,0]:2317/4000 [================>.............]Mon Sep 6 17:09:46 2021[1,0]: - ETA: 3:55:16 - loss: 0.1323 - auc: 0.7718Mon Sep 6 17:09:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:10:44 2021[1,0]:2324/4000 [================>.............]Mon Sep 6 17:10:44 2021[1,0]: - ETA: 3:54:17 - loss: 0.1323 - auc: 0.7718Mon Sep 6 17:10:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:11:42 2021[1,0]:2331/4000 [================>.............]Mon Sep 6 17:11:42 2021[1,0]: - ETA: 3:53:18 - loss: 0.1323 - auc: 0.7719Mon Sep 6 17:11:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:12:48 2021[1,0]:2339/4000 [================>.............]Mon Sep 6 17:12:48 2021[1,0]: - ETA: 3:52:11 - loss: 0.1323 - auc: 0.7719Mon Sep 6 17:12:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:13:48 2021[1,0]:2346/4000 [================>.............]Mon Sep 6 17:13:48 2021[1,0]: - ETA: 3:51:12 - loss: 0.1322 - auc: 0.7720Mon Sep 6 17:13:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2353/4000 [================>.............]Mon Sep 6 17:14:49 2021[1,0]: - ETA: 3:50:15 - loss: 0.1322 - auc: 0.7720Mon Sep 6 17:14:57 2021[1,0]:Mon Sep 6 17:14:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:15:48 2021[1,0]:2360/4000 [================>.............]Mon Sep 6 17:15:48 2021[1,0]: - ETA: 3:49:17 - loss: 0.1322 - auc: 0.7721Mon Sep 6 17:15:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:16:48 2021[1,0]:2367/4000 [================>.............]Mon Sep 6 17:16:48 2021[1,0]: - ETA: 3:48:19 - loss: 0.1322 - auc: 0.7721Mon Sep 6 17:16:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2374/4000 [================>.............]Mon Sep 6 17:17:48 2021[1,0]: - ETA: 3:47:21 - loss: 0.1322 - auc: 0.7722Mon Sep 6 17:17:56 2021[1,0]:Mon Sep 6 17:17:30 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:18:46 2021[1,0]:2381/4000 [================>.............]Mon Sep 6 17:18:46 2021[1,0]: - ETA: 3:46:22 - loss: 0.1321 - auc: 0.7722Mon Sep 6 17:18:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:19:44 2021[1,0]:2388/4000 [================>.............]Mon Sep 6 17:19:44 2021[1,0]: - ETA: 3:45:22 - loss: 0.1321 - auc: 0.7723Mon Sep 6 17:19:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:20:49 2021[1,0]:2396/4000 [================>.............]Mon Sep 6 17:20:49 2021[1,0]: - ETA: 3:44:14 - loss: 0.1321 - auc: 0.7723Mon Sep 6 17:20:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:21:46 2021[1,0]:2403/4000 [=================>............]Mon Sep 6 17:21:46 2021[1,0]: - ETA: 3:43:14 - loss: 0.1321 - auc: 0.7724Mon Sep 6 17:21:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:22:43 2021[1,0]:2410/4000 [=================>............]Mon Sep 6 17:22:43 2021[1,0]: - ETA: 3:42:14 - loss: 0.1320 - auc: 0.7724Mon Sep 6 17:22:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:23:50 2021[1,0]:2418/4000 [=================>............]Mon Sep 6 17:23:50 2021[1,0]: - ETA: 3:41:07 - loss: 0.1320 - auc: 0.7725Mon Sep 6 17:23:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:24:49 2021[1,0]:2425/4000 [=================>............]Mon Sep 6 17:24:49 2021[1,0]: - ETA: 3:40:09 - loss: 0.1320 - auc: 0.7725Mon Sep 6 17:24:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:25:49 2021[1,0]:2432/4000 [=================>............]Mon Sep 6 17:25:49 2021[1,0]: - ETA: 3:39:11 - loss: 0.1320 - auc: 0.7726Mon Sep 6 17:25:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:26:46 2021[1,0]:2439/4000 [=================>............]Mon Sep 6 17:26:46 2021[1,0]: - ETA: 3:38:11 - loss: 0.1320 - auc: 0.7726Mon Sep 6 17:26:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:27:50 2021[1,0]:2447/4000 [=================>............]Mon Sep 6 17:27:50 2021[1,0]: - ETA: 3:37:02 - loss: 0.1319 - auc: 0.7727Mon Sep 6 17:27:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2454/4000 [=================>............]Mon Sep 6 17:28:45 2021[1,0]: - ETA: 3:36:01 - loss: 0.1319 - auc: 0.7727Mon Sep 6 17:28:53 2021[1,0]:Mon Sep 6 17:28:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:29:51 2021[1,0]:2462/4000 [=================>............]Mon Sep 6 17:29:51 2021[1,0]: - ETA: 3:34:53 - loss: 0.1319 - auc: 0.7728Mon Sep 6 17:29:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:30:49 2021[1,0]:2469/4000 [=================>............]Mon Sep 6 17:30:49 2021[1,0]: - ETA: 3:33:54 - loss: 0.1319 - auc: 0.7728Mon Sep 6 17:30:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:31:48 2021[1,0]:2476/4000 [=================>............]Mon Sep 6 17:31:48 2021[1,0]: - ETA: 3:32:56 - loss: 0.1318 - auc: 0.7729Mon Sep 6 17:31:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:32:48 2021[1,0]:2483/4000 [=================>............]Mon Sep 6 17:32:48 2021[1,0]: - ETA: 3:31:58 - loss: 0.1318 - auc: 0.7729Mon Sep 6 17:32:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:33:48 2021[1,0]:2490/4000 [=================>............]Mon Sep 6 17:33:48 2021[1,0]: - ETA: 3:31:00 - loss: 0.1318 - auc: 0.7730Mon Sep 6 17:33:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:34:48 2021[1,0]:2497/4000 [=================>............]Mon Sep 6 17:34:48 2021[1,0]: - ETA: 3:30:02 - loss: 0.1318 - auc: 0.7730Mon Sep 6 17:34:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:35:48 2021[1,0]:2504/4000 [=================>............]Mon Sep 6 17:35:48 2021[1,0]: - ETA: 3:29:04 - loss: 0.1318 - auc: 0.7730Mon Sep 6 17:35:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:36:44 2021[1,0]:2511/4000 [=================>............]Mon Sep 6 17:36:44 2021[1,0]: - ETA: 3:28:04 - loss: 0.1317 - auc: 0.7731Mon Sep 6 17:36:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2519/4000 [=================>............]Mon Sep 6 17:37:47 2021[1,0]: - ETA: 3:26:54 - loss: 0.1317 - auc: 0.7731Mon Sep 6 17:37:55 2021[1,0]:Mon Sep 6 17:37:24 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:38:44 2021[1,0]:2526/4000 [=================>............]Mon Sep 6 17:38:44 2021[1,0]: - ETA: 3:25:55 - loss: 0.1317 - auc: 0.7732Mon Sep 6 17:38:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:39:44 2021[1,0]:2533/4000 [=================>............]Mon Sep 6 17:39:44 2021[1,0]: - ETA: 3:24:57 - loss: 0.1317 - auc: 0.7733Mon Sep 6 17:39:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2540/4000 [==================>...........]Mon Sep 6 17:40:44 2021[1,0]: - ETA: 3:23:59 - loss: 0.1317 - auc: 0.7733Mon Sep 6 17:40:53 2021[1,0]:Mon Sep 6 17:40:18 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2547/4000 [==================>...........]Mon Sep 6 17:41:44 2021[1,0]: - ETA: 3:23:01 - loss: 0.1316 - auc: 0.7733Mon Sep 6 17:41:53 2021[1,0]:Mon Sep 6 17:41:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2554/4000 [==================>...........]Mon Sep 6 17:42:43 2021[1,0]: - ETA: 3:22:03 - loss: 0.1316 - auc: 0.7734Mon Sep 6 17:42:52 2021[1,0]:Mon Sep 6 17:42:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:43:42 2021[1,0]:2561/4000 [==================>...........]Mon Sep 6 17:43:42 2021[1,0]: - ETA: 3:21:04 - loss: 0.1316 - auc: 0.7734Mon Sep 6 17:43:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:44:50 2021[1,0]:2569/4000 [==================>...........]Mon Sep 6 17:44:50 2021[1,0]: - ETA: 3:19:57 - loss: 0.1316 - auc: 0.7735Mon Sep 6 17:44:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:45:49 2021[1,0]:2576/4000 [==================>...........]Mon Sep 6 17:45:49 2021[1,0]: - ETA: 3:18:59 - loss: 0.1316 - auc: 0.7735Mon Sep 6 17:45:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:46:47 2021[1,0]:2583/4000 [==================>...........]Mon Sep 6 17:46:47 2021[1,0]: - ETA: 3:18:00 - loss: 0.1315 - auc: 0.7735Mon Sep 6 17:46:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:47:46 2021[1,0]:2590/4000 [==================>...........]Mon Sep 6 17:47:46 2021[1,0]: - ETA: 3:17:01 - loss: 0.1315 - auc: 0.7736Mon Sep 6 17:47:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:48:44 2021[1,0]:2597/4000 [==================>...........]Mon Sep 6 17:48:44 2021[1,0]: - ETA: 3:16:02 - loss: 0.1315 - auc: 0.7736Mon Sep 6 17:48:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:49:43 2021[1,0]:2604/4000 [==================>...........]Mon Sep 6 17:49:43 2021[1,0]: - ETA: 3:15:03 - loss: 0.1315 - auc: 0.7737Mon Sep 6 17:49:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:50:50 2021[1,0]:2612/4000 [==================>...........]Mon Sep 6 17:50:50 2021[1,0]: - ETA: 3:13:57 - loss: 0.1315 - auc: 0.7737Mon Sep 6 17:50:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:51:49 2021[1,0]:2619/4000 [==================>...........]Mon Sep 6 17:51:49 2021[1,0]: - ETA: 3:12:58 - loss: 0.1314 - auc: 0.7738Mon Sep 6 17:51:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:52:49 2021[1,0]:2626/4000 [==================>...........]Mon Sep 6 17:52:49 2021[1,0]: - ETA: 3:12:00 - loss: 0.1314 - auc: 0.7738Mon Sep 6 17:52:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:53:48 2021[1,0]:2633/4000 [==================>...........]Mon Sep 6 17:53:48 2021[1,0]: - ETA: 3:11:01 - loss: 0.1314 - auc: 0.7739Mon Sep 6 17:53:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:54:47 2021[1,0]:2640/4000 [==================>...........]Mon Sep 6 17:54:47 2021[1,0]: - ETA: 3:10:03 - loss: 0.1314 - auc: 0.7739Mon Sep 6 17:54:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2647/4000 [==================>...........]Mon Sep 6 17:55:47 2021[1,0]: - ETA: 3:09:05 - loss: 0.1314 - auc: 0.7740Mon Sep 6 17:55:56 2021[1,0]:Mon Sep 6 17:55:30 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:56:47 2021[1,0]:2654/4000 [==================>...........]Mon Sep 6 17:56:47 2021[1,0]: - ETA: 3:08:07 - loss: 0.1313 - auc: 0.7740Mon Sep 6 17:56:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:57:46 2021[1,0]:2661/4000 [==================>...........]Mon Sep 6 17:57:46 2021[1,0]: - ETA: 3:07:08 - loss: 0.1313 - auc: 0.7740Mon Sep 6 17:57:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:58:46 2021[1,0]:2668/4000 [===================>..........]Mon Sep 6 17:58:46 2021[1,0]: - ETA: 3:06:10 - loss: 0.1313 - auc: 0.7741Mon Sep 6 17:58:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 17:59:51 2021[1,0]:2676/4000 [===================>..........]Mon Sep 6 17:59:51 2021[1,0]: - ETA: 3:05:02 - loss: 0.1313 - auc: 0.7741Mon Sep 6 17:59:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:00:49 2021[1,0]:2683/4000 [===================>..........]Mon Sep 6 18:00:49 2021[1,0]: - ETA: 3:04:03 - loss: 0.1313 - auc: 0.7742Mon Sep 6 18:00:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:01:49 2021[1,0]:2690/4000 [===================>..........]Mon Sep 6 18:01:49 2021[1,0]: - ETA: 3:03:05 - loss: 0.1313 - auc: 0.7742Mon Sep 6 18:01:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2697/4000 [===================>..........]Mon Sep 6 18:02:48 2021[1,0]: - ETA: 3:02:06 - loss: 0.1313 - auc: 0.7742Mon Sep 6 18:02:56 2021[1,0]:Mon Sep 6 18:02:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:03:48 2021[1,0]:2704/4000 [===================>..........]Mon Sep 6 18:03:48 2021[1,0]: - ETA: 3:01:09 - loss: 0.1312 - auc: 0.7743Mon Sep 6 18:03:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2711/4000 [===================>..........]Mon Sep 6 18:04:48 2021[1,0]: - ETA: 3:00:10 - loss: 0.1312 - auc: 0.7743Mon Sep 6 18:04:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:05:47 2021[1,0]:2718/4000 [===================>..........]Mon Sep 6 18:05:47 2021[1,0]: - ETA: 2:59:12 - loss: 0.1312 - auc: 0.7744Mon Sep 6 18:05:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:06:45 2021[1,0]:2725/4000 [===================>..........]Mon Sep 6 18:06:45 2021[1,0]: - ETA: 2:58:13 - loss: 0.1312 - auc: 0.7744Mon Sep 6 18:06:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:07:51 2021[1,0]:2733/4000 [===================>..........]Mon Sep 6 18:07:51 2021[1,0]: - ETA: 2:57:05 - loss: 0.1312 - auc: 0.7745Mon Sep 6 18:07:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:08:48 2021[1,0]:2740/4000 [===================>..........]Mon Sep 6 18:08:48 2021[1,0]: - ETA: 2:56:06 - loss: 0.1312 - auc: 0.7745Mon Sep 6 18:08:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:09:46 2021[1,0]:2747/4000 [===================>..........]Mon Sep 6 18:09:46 2021[1,0]: - ETA: 2:55:07 - loss: 0.1311 - auc: 0.7745Mon Sep 6 18:09:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2754/4000 [===================>..........]Mon Sep 6 18:10:44 2021[1,0]: - ETA: 2:54:08 - loss: 0.1311 - auc: 0.7746Mon Sep 6 18:10:52 2021[1,0]:Mon Sep 6 18:10:28 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:11:50 2021[1,0]:2762/4000 [===================>..........]Mon Sep 6 18:11:50 2021[1,0]: - ETA: 2:53:00 - loss: 0.1311 - auc: 0.7746Mon Sep 6 18:11:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:12:49 2021[1,0]:2769/4000 [===================>..........]Mon Sep 6 18:12:49 2021[1,0]: - ETA: 2:52:01 - loss: 0.1311 - auc: 0.7747Mon Sep 6 18:12:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:13:48 2021[1,0]:2776/4000 [===================>..........]Mon Sep 6 18:13:48 2021[1,0]: - ETA: 2:51:03 - loss: 0.1311 - auc: 0.7747Mon Sep 6 18:13:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:14:47 2021[1,0]:2783/4000 [===================>..........]Mon Sep 6 18:14:47 2021[1,0]: - ETA: 2:50:04 - loss: 0.1310 - auc: 0.7748Mon Sep 6 18:14:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:15:47 2021[1,0]:2790/4000 [===================>..........]Mon Sep 6 18:15:47 2021[1,0]: - ETA: 2:49:06 - loss: 0.1310 - auc: 0.7748Mon Sep 6 18:15:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:16:48 2021[1,0]:2797/4000 [===================>..........]Mon Sep 6 18:16:48 2021[1,0]: - ETA: 2:48:08 - loss: 0.1310 - auc: 0.7748Mon Sep 6 18:16:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2804/4000 [====================>.........]Mon Sep 6 18:17:47 2021[1,0]: - ETA: 2:47:10 - loss: 0.1310 - auc: 0.7749Mon Sep 6 18:17:56 2021[1,0]:Mon Sep 6 18:17:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:18:46 2021[1,0]:2811/4000 [====================>.........]Mon Sep 6 18:18:46 2021[1,0]: - ETA: 2:46:11 - loss: 0.1310 - auc: 0.7749Mon Sep 6 18:18:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2818/4000 [====================>.........]Mon Sep 6 18:19:47 2021[1,0]: - ETA: 2:45:14 - loss: 0.1310 - auc: 0.7749Mon Sep 6 18:19:56 2021[1,0]:Mon Sep 6 18:19:38 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:20:47 2021[1,0]:2825/4000 [====================>.........]Mon Sep 6 18:20:47 2021[1,0]: - ETA: 2:44:15 - loss: 0.1310 - auc: 0.7750Mon Sep 6 18:20:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:21:46 2021[1,0]:2832/4000 [====================>.........]Mon Sep 6 18:21:46 2021[1,0]: - ETA: 2:43:17 - loss: 0.1309 - auc: 0.7750Mon Sep 6 18:21:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2840/4000 [====================>.........]Mon Sep 6 18:22:52 2021[1,0]: - ETA: 2:42:09 - loss: 0.1309 - auc: 0.7751Mon Sep 6 18:23:00 2021[1,0]:Mon Sep 6 18:22:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2847/4000 [====================>.........]Mon Sep 6 18:23:51 2021[1,0]: - ETA: 2:41:11 - loss: 0.1309 - auc: 0.7751Mon Sep 6 18:24:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:24:44 2021[1,0]:2853/4000 [====================>.........]Mon Sep 6 18:24:44 2021[1,0]: - ETA: 2:40:21 - loss: 0.1309 - auc: 0.7751Mon Sep 6 18:24:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:25:45 2021[1,0]:2860/4000 [====================>.........]Mon Sep 6 18:25:45 2021[1,0]: - ETA: 2:39:23 - loss: 0.1309 - auc: 0.7752Mon Sep 6 18:25:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:26:45 2021[1,0]:2867/4000 [====================>.........]Mon Sep 6 18:26:45 2021[1,0]: - ETA: 2:38:25 - loss: 0.1309 - auc: 0.7752Mon Sep 6 18:26:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:27:45 2021[1,0]:2874/4000 [====================>.........]Mon Sep 6 18:27:45 2021[1,0]: - ETA: 2:37:27 - loss: 0.1308 - auc: 0.7752Mon Sep 6 18:27:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:28:45 2021[1,0]:2881/4000 [====================>.........]Mon Sep 6 18:28:45 2021[1,0]: - ETA: 2:36:29 - loss: 0.1308 - auc: 0.7753Mon Sep 6 18:28:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:29:44 2021[1,0]:2888/4000 [====================>.........]Mon Sep 6 18:29:44 2021[1,0]: - ETA: 2:35:30 - loss: 0.1308 - auc: 0.7753Mon Sep 6 18:29:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:30:52 2021[1,0]:2896/4000 [====================>.........]Mon Sep 6 18:30:52 2021[1,0]: - ETA: 2:34:23 - loss: 0.1308 - auc: 0.7754Mon Sep 6 18:31:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:31:50 2021[1,0]:2903/4000 [====================>.........]Mon Sep 6 18:31:50 2021[1,0]: - ETA: 2:33:24 - loss: 0.1308 - auc: 0.7754Mon Sep 6 18:31:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2910/4000 [====================>.........]Mon Sep 6 18:32:48 2021[1,0]: - ETA: 2:32:25 - loss: 0.1308 - auc: 0.7754Mon Sep 6 18:32:56 2021[1,0]:Mon Sep 6 18:32:48 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:33:47 2021[1,0]:2917/4000 [====================>.........]Mon Sep 6 18:33:47 2021[1,0]: - ETA: 2:31:27 - loss: 0.1308 - auc: 0.7755Mon Sep 6 18:33:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:34:45 2021[1,0]:2924/4000 [====================>.........]Mon Sep 6 18:34:45 2021[1,0]: - ETA: 2:30:28 - loss: 0.1307 - auc: 0.7755Mon Sep 6 18:34:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:35:45 2021[1,0]:2931/4000 [====================>.........]Mon Sep 6 18:35:45 2021[1,0]: - ETA: 2:29:30 - loss: 0.1307 - auc: 0.7755Mon Sep 6 18:35:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2938/4000 [=====================>........]Mon Sep 6 18:36:46 2021[1,0]: - ETA: 2:28:32 - loss: 0.1307 - auc: 0.7756Mon Sep 6 18:36:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:37:45 2021[1,0]:2945/4000 [=====================>........]Mon Sep 6 18:37:45 2021[1,0]: - ETA: 2:27:33 - loss: 0.1307 - auc: 0.7756Mon Sep 6 18:37:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:38:46 2021[1,0]:2952/4000 [=====================>........]Mon Sep 6 18:38:46 2021[1,0]: - ETA: 2:26:35 - loss: 0.1307 - auc: 0.7756Mon Sep 6 18:38:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:39:45 2021[1,0]:2959/4000 [=====================>........]Mon Sep 6 18:39:45 2021[1,0]: - ETA: 2:25:36 - loss: 0.1307 - auc: 0.7757Mon Sep 6 18:39:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2966/4000 [=====================>........]Mon Sep 6 18:40:45 2021[1,0]: - ETA: 2:24:38 - loss: 0.1307 - auc: 0.7757Mon Sep 6 18:40:54 2021[1,0]:Mon Sep 6 18:40:36 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:41:45 2021[1,0]:2973/4000 [=====================>........] - ETA: 2:23:40 - loss: 0.1306 - auc: 0.7757Mon Sep 6 18:41:54 2021[1,0]:Mon Sep 6 18:41:28 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:42:44 2021[1,0]:2980/4000 [=====================>........]Mon Sep 6 18:42:44 2021[1,0]: - ETA: 2:22:41 - loss: 0.1306 - auc: 0.7758Mon Sep 6 18:42:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:43:51 2021[1,0]:2988/4000 [=====================>........]Mon Sep 6 18:43:51 2021[1,0]: - ETA: 2:21:34 - loss: 0.1306 - auc: 0.7758Mon Sep 6 18:43:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2995/4000 [=====================>........]Mon Sep 6 18:44:49 2021[1,0]: - ETA: 2:20:35 - loss: 0.1306 - auc: 0.7758Mon Sep 6 18:44:58 2021[1,0]:Mon Sep 6 18:44:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:45:48 2021[1,0]:3002/4000 [=====================>........]Mon Sep 6 18:45:48 2021[1,0]: - ETA: 2:19:36 - loss: 0.1306 - auc: 0.7759Mon Sep 6 18:45:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:46:48 2021[1,0]:3009/4000 [=====================>........]Mon Sep 6 18:46:48 2021[1,0]: - ETA: 2:18:38 - loss: 0.1306 - auc: 0.7759Mon Sep 6 18:46:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:47:48 2021[1,0]:3016/4000 [=====================>........]Mon Sep 6 18:47:48 2021[1,0]: - ETA: 2:17:39 - loss: 0.1306 - auc: 0.7759Mon Sep 6 18:47:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3023/4000 [=====================>........]Mon Sep 6 18:48:48 2021[1,0]: - ETA: 2:16:41 - loss: 0.1305 - auc: 0.7759Mon Sep 6 18:48:56 2021[1,0]:Mon Sep 6 18:48:30 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:49:46 2021[1,0]:3030/4000 [=====================>........]Mon Sep 6 18:49:46 2021[1,0]: - ETA: 2:15:42 - loss: 0.1305 - auc: 0.7760Mon Sep 6 18:49:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:50:45 2021[1,0]:3037/4000 [=====================>........]Mon Sep 6 18:50:45 2021[1,0]: - ETA: 2:14:43 - loss: 0.1305 - auc: 0.7760Mon Sep 6 18:50:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3044/4000 [=====================>........]Mon Sep 6 18:51:45 2021[1,0]: - ETA: 2:13:45 - loss: 0.1305 - auc: 0.7760Mon Sep 6 18:51:53 2021[1,0]:Mon Sep 6 18:51:45 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:52:45 2021[1,0]:3051/4000 [=====================>........]Mon Sep 6 18:52:45 2021[1,0]: - ETA: 2:12:47 - loss: 0.1305 - auc: 0.7761Mon Sep 6 18:52:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:53:45 2021[1,0]:3058/4000 [=====================>........]Mon Sep 6 18:53:45 2021[1,0]: - ETA: 2:11:48 - loss: 0.1305 - auc: 0.7761Mon Sep 6 18:53:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:54:46 2021[1,0]:3065/4000 [=====================>........]Mon Sep 6 18:54:46 2021[1,0]: - ETA: 2:10:50 - loss: 0.1305 - auc: 0.7761Mon Sep 6 18:54:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:55:46 2021[1,0]:3072/4000 [======================>.......]Mon Sep 6 18:55:46 2021[1,0]: - ETA: 2:09:52 - loss: 0.1305 - auc: 0.7762Mon Sep 6 18:55:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:56:45 2021[1,0]:3079/4000 [======================>.......]Mon Sep 6 18:56:45 2021[1,0]: - ETA: 2:08:53 - loss: 0.1304 - auc: 0.7762Mon Sep 6 18:56:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:57:45 2021[1,0]:3086/4000 [======================>.......]Mon Sep 6 18:57:45 2021[1,0]: - ETA: 2:07:55 - loss: 0.1304 - auc: 0.7762Mon Sep 6 18:57:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:58:46 2021[1,0]:3093/4000 [======================>.......]Mon Sep 6 18:58:46 2021[1,0]: - ETA: 2:06:56 - loss: 0.1304 - auc: 0.7763Mon Sep 6 18:58:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 18:59:46 2021[1,0]:3100/4000 [======================>.......]Mon Sep 6 18:59:46 2021[1,0]: - ETA: 2:05:58 - loss: 0.1304 - auc: 0.7763Mon Sep 6 18:59:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3107/4000 [======================>.......]Mon Sep 6 19:00:47 2021[1,0]: - ETA: 2:05:00 - loss: 0.1304 - auc: 0.7763Mon Sep 6 19:00:56 2021[1,0]:Mon Sep 6 19:00:39 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:01:49 2021[1,0]:3114/4000 [======================>.......]Mon Sep 6 19:01:49 2021[1,0]: - ETA: 2:04:02 - loss: 0.1304 - auc: 0.7763Mon Sep 6 19:01:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:02:50 2021[1,0]:3121/4000 [======================>.......]Mon Sep 6 19:02:50 2021[1,0]: - ETA: 2:03:04 - loss: 0.1304 - auc: 0.7764Mon Sep 6 19:02:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:03:51 2021[1,0]:3128/4000 [======================>.......]Mon Sep 6 19:03:51 2021[1,0]: - ETA: 2:02:06 - loss: 0.1304 - auc: 0.7764Mon Sep 6 19:04:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:04:52 2021[1,0]:3135/4000 [======================>.......]Mon Sep 6 19:04:52 2021[1,0]: - ETA: 2:01:07 - loss: 0.1303 - auc: 0.7764Mon Sep 6 19:05:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:05:44 2021[1,0]:3141/4000 [======================>.......]Mon Sep 6 19:05:44 2021[1,0]: - ETA: 2:00:17 - loss: 0.1303 - auc: 0.7764Mon Sep 6 19:05:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:06:45 2021[1,0]:3148/4000 [======================>.......]Mon Sep 6 19:06:45 2021[1,0]: - ETA: 1:59:19 - loss: 0.1303 - auc: 0.7765Mon Sep 6 19:06:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:07:46 2021[1,0]:3155/4000 [======================>.......]Mon Sep 6 19:07:46 2021[1,0]: - ETA: 1:58:21 - loss: 0.1303 - auc: 0.7765Mon Sep 6 19:07:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:08:47 2021[1,0]:3162/4000 [======================>.......]Mon Sep 6 19:08:47 2021[1,0]: - ETA: 1:57:23 - loss: 0.1303 - auc: 0.7765Mon Sep 6 19:08:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3169/4000 [======================>.......]Mon Sep 6 19:09:49 2021[1,0]: - ETA: 1:56:25 - loss: 0.1303 - auc: 0.7766Mon Sep 6 19:09:57 2021[1,0]:Mon Sep 6 19:09:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:10:49 2021[1,0]:3176/4000 [======================>.......]Mon Sep 6 19:10:49 2021[1,0]: - ETA: 1:55:26 - loss: 0.1303 - auc: 0.7766Mon Sep 6 19:10:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:11:51 2021[1,0]:3183/4000 [======================>.......]Mon Sep 6 19:11:51 2021[1,0]: - ETA: 1:54:28 - loss: 0.1303 - auc: 0.7766Mon Sep 6 19:12:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:12:51 2021[1,0]:3190/4000 [======================>.......] - ETA: 1:53:30 - loss: 0.1303 - auc: 0.7766Mon Sep 6 19:13:00 2021[1,0]:Mon Sep 6 19:12:43 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:13:52 2021[1,0]:3197/4000 [======================>.......]Mon Sep 6 19:13:52 2021[1,0]: - ETA: 1:52:31 - loss: 0.1302 - auc: 0.7767Mon Sep 6 19:14:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:14:52 2021[1,0]:3204/4000 [=======================>......]Mon Sep 6 19:14:52 2021[1,0]: - ETA: 1:51:33 - loss: 0.1302 - auc: 0.7767Mon Sep 6 19:15:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:15:44 2021[1,0]:3210/4000 [=======================>......]Mon Sep 6 19:15:44 2021[1,0]: - ETA: 1:50:43 - loss: 0.1302 - auc: 0.7767Mon Sep 6 19:15:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:16:45 2021[1,0]:3217/4000 [=======================>......]Mon Sep 6 19:16:45 2021[1,0]: - ETA: 1:49:44 - loss: 0.1302 - auc: 0.7767Mon Sep 6 19:16:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3224/4000 [=======================>......]Mon Sep 6 19:17:45 2021[1,0]: - ETA: 1:48:46 - loss: 0.1302 - auc: 0.7768Mon Sep 6 19:17:53 2021[1,0]:Mon Sep 6 19:17:36 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:18:44 2021[1,0]:3231/4000 [=======================>......]Mon Sep 6 19:18:44 2021[1,0]: - ETA: 1:47:47 - loss: 0.1302 - auc: 0.7768Mon Sep 6 19:18:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:19:53 2021[1,0]:3239/4000 [=======================>......]Mon Sep 6 19:19:53 2021[1,0]: - ETA: 1:46:40 - loss: 0.1302 - auc: 0.7768Mon Sep 6 19:20:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3245/4000 [=======================>......]Mon Sep 6 19:20:45 2021[1,0]: - ETA: 1:45:50 - loss: 0.1302 - auc: 0.7768Mon Sep 6 19:20:53 2021[1,0]:Mon Sep 6 19:20:36 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:21:46 2021[1,0]:3252/4000 [=======================>......]Mon Sep 6 19:21:46 2021[1,0]: - ETA: 1:44:51 - loss: 0.1302 - auc: 0.7769Mon Sep 6 19:21:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:22:45 2021[1,0]:3259/4000 [=======================>......]Mon Sep 6 19:22:45 2021[1,0]: - ETA: 1:43:53 - loss: 0.1301 - auc: 0.7769Mon Sep 6 19:22:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:23:53 2021[1,0]:3267/4000 [=======================>......]Mon Sep 6 19:23:53 2021[1,0]: - ETA: 1:42:45 - loss: 0.1301 - auc: 0.7769Mon Sep 6 19:24:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:24:52 2021[1,0]:3274/4000 [=======================>......]Mon Sep 6 19:24:52 2021[1,0]: - ETA: 1:41:47 - loss: 0.1301 - auc: 0.7770Mon Sep 6 19:25:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3281/4000 [=======================>......]Mon Sep 6 19:25:51 2021[1,0]: - ETA: 1:40:48 - loss: 0.1301 - auc: 0.7770Mon Sep 6 19:25:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:26:50 2021[1,0]:3288/4000 [=======================>......]Mon Sep 6 19:26:50 2021[1,0]: - ETA: 1:39:49 - loss: 0.1301 - auc: 0.7770Mon Sep 6 19:26:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:27:49 2021[1,0]:3295/4000 [=======================>......]Mon Sep 6 19:27:49 2021[1,0]: - ETA: 1:38:50 - loss: 0.1301 - auc: 0.7770Mon Sep 6 19:27:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:28:48 2021[1,0]:3302/4000 [=======================>......]Mon Sep 6 19:28:48 2021[1,0]: - ETA: 1:37:51 - loss: 0.1301 - auc: 0.7771Mon Sep 6 19:28:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:29:47 2021[1,0]:3309/4000 [=======================>......]Mon Sep 6 19:29:47 2021[1,0]: - ETA: 1:36:52 - loss: 0.1301 - auc: 0.7771Mon Sep 6 19:29:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:30:47 2021[1,0]:3316/4000 [=======================>......] - ETA: 1:35:54 - loss: 0.1301 - auc: 0.7771Mon Sep 6 19:30:55 2021[1,0]:Mon Sep 6 19:30:38 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:31:47 2021[1,0]:3323/4000 [=======================>......]Mon Sep 6 19:31:47 2021[1,0]: - ETA: 1:34:55 - loss: 0.1300 - auc: 0.7771Mon Sep 6 19:31:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:32:46 2021[1,0]:3330/4000 [=======================>......]Mon Sep 6 19:32:46 2021[1,0]: - ETA: 1:33:56 - loss: 0.1300 - auc: 0.7772Mon Sep 6 19:32:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:33:46 2021[1,0]:3337/4000 [========================>.....]Mon Sep 6 19:33:46 2021[1,0]: - ETA: 1:32:58 - loss: 0.1300 - auc: 0.7772Mon Sep 6 19:33:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3344/4000 [========================>.....]Mon Sep 6 19:34:46 2021[1,0]: - ETA: 1:31:59 - loss: 0.1300 - auc: 0.7772Mon Sep 6 19:34:54 2021[1,0]:Mon Sep 6 19:34:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3351/4000 [========================>.....]Mon Sep 6 19:35:46 2021[1,0]: - ETA: 1:31:00 - loss: 0.1300 - auc: 0.7773Mon Sep 6 19:35:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:36:47 2021[1,0]:3358/4000 [========================>.....]Mon Sep 6 19:36:47 2021[1,0]: - ETA: 1:30:02 - loss: 0.1300 - auc: 0.7773Mon Sep 6 19:36:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:37:47 2021[1,0]:3365/4000 [========================>.....]Mon Sep 6 19:37:47 2021[1,0]: - ETA: 1:29:03 - loss: 0.1300 - auc: 0.7773Mon Sep 6 19:37:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:38:46 2021[1,0]:3372/4000 [========================>.....]Mon Sep 6 19:38:46 2021[1,0]: - ETA: 1:28:04 - loss: 0.1300 - auc: 0.7773Mon Sep 6 19:38:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:39:46 2021[1,0]:3379/4000 [========================>.....]Mon Sep 6 19:39:46 2021[1,0]: - ETA: 1:27:05 - loss: 0.1300 - auc: 0.7774Mon Sep 6 19:39:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:40:46 2021[1,0]:3386/4000 [========================>.....]Mon Sep 6 19:40:46 2021[1,0]: - ETA: 1:26:07 - loss: 0.1300 - auc: 0.7774Mon Sep 6 19:40:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:41:46 2021[1,0]:3393/4000 [========================>.....]Mon Sep 6 19:41:46 2021[1,0]: - ETA: 1:25:08 - loss: 0.1299 - auc: 0.7774Mon Sep 6 19:41:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:42:46 2021[1,0]:3400/4000 [========================>.....]Mon Sep 6 19:42:46 2021[1,0]: - ETA: 1:24:09 - loss: 0.1299 - auc: 0.7774Mon Sep 6 19:42:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:43:46 2021[1,0]:3407/4000 [========================>.....]Mon Sep 6 19:43:46 2021[1,0]: - ETA: 1:23:10 - loss: 0.1299 - auc: 0.7774Mon Sep 6 19:43:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:44:46 2021[1,0]:3414/4000 [========================>.....]Mon Sep 6 19:44:46 2021[1,0]: - ETA: 1:22:12 - loss: 0.1299 - auc: 0.7775Mon Sep 6 19:44:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:45:53 2021[1,0]:3422/4000 [========================>.....]Mon Sep 6 19:45:53 2021[1,0]: - ETA: 1:21:04 - loss: 0.1299 - auc: 0.7775Mon Sep 6 19:46:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:46:52 2021[1,0]:3429/4000 [========================>.....]Mon Sep 6 19:46:52 2021[1,0]: - ETA: 1:20:05 - loss: 0.1299 - auc: 0.7775Mon Sep 6 19:47:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:47:52 2021[1,0]:3436/4000 [========================>.....]Mon Sep 6 19:47:52 2021[1,0]: - ETA: 1:19:07 - loss: 0.1299 - auc: 0.7775Mon Sep 6 19:48:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:48:51 2021[1,0]:3443/4000 [========================>.....]Mon Sep 6 19:48:51 2021[1,0]: - ETA: 1:18:08 - loss: 0.1299 - auc: 0.7776Mon Sep 6 19:48:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3450/4000 [========================>.....]Mon Sep 6 19:49:49 2021[1,0]: - ETA: 1:17:09 - loss: 0.1299 - auc: 0.7776Mon Sep 6 19:49:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3457/4000 [========================>.....]Mon Sep 6 19:50:47 2021[1,0]: - ETA: 1:16:10 - loss: 0.1298 - auc: 0.7776Mon Sep 6 19:50:55 2021[1,0]:Mon Sep 6 19:50:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:51:52 2021[1,0]:3465/4000 [========================>.....]Mon Sep 6 19:51:52 2021[1,0]: - ETA: 1:15:02 - loss: 0.1298 - auc: 0.7777Mon Sep 6 19:52:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3472/4000 [=========================>....]Mon Sep 6 19:52:50 2021[1,0]: - ETA: 1:14:03 - loss: 0.1298 - auc: 0.7777Mon Sep 6 19:52:58 2021[1,0]:Mon Sep 6 19:52:41 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3479/4000 [=========================>....]Mon Sep 6 19:53:47 2021[1,0]: - ETA: 1:13:04 - loss: 0.1298 - auc: 0.7777Mon Sep 6 19:53:55 2021[1,0]:Mon Sep 6 19:53:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:54:52 2021[1,0]:3487/4000 [=========================>....]Mon Sep 6 19:54:52 2021[1,0]: - ETA: 1:11:56 - loss: 0.1298 - auc: 0.7777Mon Sep 6 19:55:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:55:50 2021[1,0]:3494/4000 [=========================>....]Mon Sep 6 19:55:50 2021[1,0]: - ETA: 1:10:57 - loss: 0.1298 - auc: 0.7777Mon Sep 6 19:55:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:56:48 2021[1,0]:3501/4000 [=========================>....]Mon Sep 6 19:56:48 2021[1,0]: - ETA: 1:09:58 - loss: 0.1298 - auc: 0.7778Mon Sep 6 19:56:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:57:47 2021[1,0]:3508/4000 [=========================>....]Mon Sep 6 19:57:47 2021[1,0]: - ETA: 1:08:59 - loss: 0.1298 - auc: 0.7778Mon Sep 6 19:57:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:58:46 2021[1,0]:3515/4000 [=========================>....]Mon Sep 6 19:58:46 2021[1,0]: - ETA: 1:08:00 - loss: 0.1298 - auc: 0.7778Mon Sep 6 19:58:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 19:59:52 2021[1,0]:3523/4000 [=========================>....]Mon Sep 6 19:59:52 2021[1,0]: - ETA: 1:06:53 - loss: 0.1298 - auc: 0.7778Mon Sep 6 20:00:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:00:49 2021[1,0]:3530/4000 [=========================>....]Mon Sep 6 20:00:49 2021[1,0]: - ETA: 1:05:54 - loss: 0.1297 - auc: 0.7779Mon Sep 6 20:00:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:01:48 2021[1,0]:3537/4000 [=========================>....]Mon Sep 6 20:01:48 2021[1,0]: - ETA: 1:04:55 - loss: 0.1297 - auc: 0.7779Mon Sep 6 20:01:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:02:47 2021[1,0]:3544/4000 [=========================>....]Mon Sep 6 20:02:47 2021[1,0]: - ETA: 1:03:56 - loss: 0.1297 - auc: 0.7779Mon Sep 6 20:02:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:03:53 2021[1,0]:3552/4000 [=========================>....]Mon Sep 6 20:03:53 2021[1,0]: - ETA: 1:02:48 - loss: 0.1297 - auc: 0.7780Mon Sep 6 20:04:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:04:52 2021[1,0]:3559/4000 [=========================>....]Mon Sep 6 20:04:52 2021[1,0]: - ETA: 1:01:50 - loss: 0.1297 - auc: 0.7780Mon Sep 6 20:05:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:05:52 2021[1,0]:3566/4000 [=========================>....]Mon Sep 6 20:05:52 2021[1,0]: - ETA: 1:00:51 - loss: 0.1297 - auc: 0.7780Mon Sep 6 20:06:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:06:52 2021[1,0]:3573/4000 [=========================>....]Mon Sep 6 20:06:52 2021[1,0]: - ETA: 59:52 - loss: 0.1297 - auc: 0.7780 Mon Sep 6 20:07:01 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3580/4000 [=========================>....]Mon Sep 6 20:07:52 2021[1,0]: - ETA: 58:53 - loss: 0.1297 - auc: 0.7780Mon Sep 6 20:08:01 2021[1,0]:Mon Sep 6 20:07:52 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3587/4000 [=========================>....]Mon Sep 6 20:08:49 2021[1,0]: - ETA: 57:54 - loss: 0.1297 - auc: 0.7781Mon Sep 6 20:08:57 2021[1,0]:Mon Sep 6 20:08:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:09:46 2021[1,0]:3594/4000 [=========================>....]Mon Sep 6 20:09:46 2021[1,0]: - ETA: 56:55 - loss: 0.1297 - auc: 0.7781Mon Sep 6 20:09:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3602/4000 [==========================>...]Mon Sep 6 20:10:52 2021[1,0]: - ETA: 55:48 - loss: 0.1296 - auc: 0.7781Mon Sep 6 20:11:01 2021[1,0]:Mon Sep 6 20:10:36 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3609/4000 [==========================>...]Mon Sep 6 20:11:51 2021[1,0]: - ETA: 54:49 - loss: 0.1296 - auc: 0.7782Mon Sep 6 20:11:59 2021[1,0]:Mon Sep 6 20:11:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:12:49 2021[1,0]:3616/4000 [==========================>...]Mon Sep 6 20:12:49 2021[1,0]: - ETA: 53:50 - loss: 0.1296 - auc: 0.7782Mon Sep 6 20:12:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:13:49 2021[1,0]:3623/4000 [==========================>...]Mon Sep 6 20:13:49 2021[1,0]: - ETA: 52:51 - loss: 0.1296 - auc: 0.7782Mon Sep 6 20:13:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3630/4000 [==========================>...]Mon Sep 6 20:14:48 2021[1,0]: - ETA: 51:52 - loss: 0.1296 - auc: 0.7782Mon Sep 6 20:14:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:15:49 2021[1,0]:3637/4000 [==========================>...]Mon Sep 6 20:15:49 2021[1,0]: - ETA: 50:53 - loss: 0.1296 - auc: 0.7782Mon Sep 6 20:15:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:16:49 2021[1,0]:3644/4000 [==========================>...]Mon Sep 6 20:16:49 2021[1,0]: - ETA: 49:55 - loss: 0.1296 - auc: 0.7783Mon Sep 6 20:16:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3651/4000 [==========================>...]Mon Sep 6 20:17:49 2021[1,0]: - ETA: 48:56 - loss: 0.1296 - auc: 0.7783Mon Sep 6 20:17:58 2021[1,0]:Mon Sep 6 20:17:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3658/4000 [==========================>...]Mon Sep 6 20:18:50 2021[1,0]: - ETA: 47:57 - loss: 0.1296 - auc: 0.7783Mon Sep 6 20:18:59 2021[1,0]:Mon Sep 6 20:18:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:19:50 2021[1,0]:3665/4000 [==========================>...]Mon Sep 6 20:19:50 2021[1,0]: - ETA: 46:58 - loss: 0.1296 - auc: 0.7783Mon Sep 6 20:19:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:20:49 2021[1,0]:3672/4000 [==========================>...]Mon Sep 6 20:20:49 2021[1,0]: - ETA: 45:59 - loss: 0.1296 - auc: 0.7784Mon Sep 6 20:20:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:21:49 2021[1,0]:3679/4000 [==========================>...]Mon Sep 6 20:21:49 2021[1,0]: - ETA: 45:01 - loss: 0.1295 - auc: 0.7784Mon Sep 6 20:21:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:22:49 2021[1,0]:3686/4000 [==========================>...]Mon Sep 6 20:22:49 2021[1,0]: - ETA: 44:02 - loss: 0.1295 - auc: 0.7784Mon Sep 6 20:22:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3693/4000 [==========================>...]Mon Sep 6 20:23:49 2021[1,0]: - ETA: 43:03 - loss: 0.1295 - auc: 0.7784Mon Sep 6 20:23:58 2021[1,0]:Mon Sep 6 20:23:41 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:24:50 2021[1,0]:3700/4000 [==========================>...]Mon Sep 6 20:24:50 2021[1,0]: - ETA: 42:04 - loss: 0.1295 - auc: 0.7785Mon Sep 6 20:24:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3707/4000 [==========================>...]Mon Sep 6 20:25:49 2021[1,0]: - ETA: 41:05 - loss: 0.1295 - auc: 0.7785Mon Sep 6 20:25:58 2021[1,0]:Mon Sep 6 20:25:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:26:48 2021[1,0]:3714/4000 [==========================>...]Mon Sep 6 20:26:48 2021[1,0]: - ETA: 40:07 - loss: 0.1295 - auc: 0.7785Mon Sep 6 20:26:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:27:46 2021[1,0]:3721/4000 [==========================>...]Mon Sep 6 20:27:46 2021[1,0]: - ETA: 39:07 - loss: 0.1295 - auc: 0.7785Mon Sep 6 20:27:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:28:54 2021[1,0]:3729/4000 [==========================>...]Mon Sep 6 20:28:54 2021[1,0]: - ETA: 38:00 - loss: 0.1295 - auc: 0.7785Mon Sep 6 20:29:02 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3735/4000 [===========================>..]Mon Sep 6 20:29:46 2021[1,0]: - ETA: 37:10 - loss: 0.1295 - auc: 0.7786Mon Sep 6 20:29:54 2021[1,0]:Mon Sep 6 20:29:46 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3742/4000 [===========================>..] - ETA: 36:11 - loss: 0.1295 - auc: 0.7786Mon Sep 6 20:30:55 2021[1,0]:86Mon Sep 6 20:30:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:31:47 2021[1,0]:3749/4000 [===========================>..]Mon Sep 6 20:31:47 2021[1,0]: - ETA: 35:12 - loss: 0.1295 - auc: 0.7786Mon Sep 6 20:31:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:32:47 2021[1,0]:3756/4000 [===========================>..]Mon Sep 6 20:32:47 2021[1,0]: - ETA: 34:13 - loss: 0.1294 - auc: 0.7786Mon Sep 6 20:32:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:33:48 2021[1,0]:3763/4000 [===========================>..]Mon Sep 6 20:33:48 2021[1,0]: - ETA: 33:15 - loss: 0.1294 - auc: 0.7787Mon Sep 6 20:33:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3770/4000 [===========================>..]Mon Sep 6 20:34:49 2021[1,0]: - ETA: 32:16 - loss: 0.1294 - auc: 0.7787Mon Sep 6 20:34:58 2021[1,0]:Mon Sep 6 20:34:49 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:35:50 2021[1,0]:3777/4000 [===========================>..]Mon Sep 6 20:35:50 2021[1,0]: - ETA: 31:17 - loss: 0.1294 - auc: 0.7787Mon Sep 6 20:35:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:36:49 2021[1,0]:3784/4000 [===========================>..]Mon Sep 6 20:36:49 2021[1,0]: - ETA: 30:18 - loss: 0.1294 - auc: 0.7787Mon Sep 6 20:36:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:37:47 2021[1,0]:3791/4000 [===========================>..]Mon Sep 6 20:37:47 2021[1,0]: - ETA: 29:19 - loss: 0.1294 - auc: 0.7788Mon Sep 6 20:37:55 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3799/4000 [===========================>..]Mon Sep 6 20:38:53 2021[1,0]: - ETA: 28:12 - loss: 0.1294 - auc: 0.7788Mon Sep 6 20:39:02 2021[1,0]:Mon Sep 6 20:38:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3806/4000 [===========================>..]Mon Sep 6 20:39:51 2021[1,0]: - ETA: 27:13 - loss: 0.1294 - auc: 0.7788Mon Sep 6 20:39:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:40:50 2021[1,0]:3813/4000 [===========================>..]Mon Sep 6 20:40:50 2021[1,0]: - ETA: 26:14 - loss: 0.1294 - auc: 0.7788Mon Sep 6 20:40:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:41:47 2021[1,0]:3820/4000 [===========================>..]Mon Sep 6 20:41:47 2021[1,0]: - ETA: 25:15 - loss: 0.1294 - auc: 0.7788Mon Sep 6 20:41:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:42:54 2021[1,0]:3828/4000 [===========================>..]Mon Sep 6 20:42:54 2021[1,0]: - ETA: 24:07 - loss: 0.1293 - auc: 0.7789Mon Sep 6 20:43:02 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:43:51 2021[1,0]:3835/4000 [===========================>..]Mon Sep 6 20:43:51 2021[1,0]: - ETA: 23:08 - loss: 0.1293 - auc: 0.7789Mon Sep 6 20:44:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:44:49 2021[1,0]:3842/4000 [===========================>..]Mon Sep 6 20:44:49 2021[1,0]: - ETA: 22:09 - loss: 0.1293 - auc: 0.7789Mon Sep 6 20:44:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3850/4000 [===========================>..]Mon Sep 6 20:45:54 2021[1,0]: - ETA: 21:02 - loss: 0.1293 - auc: 0.7789Mon Sep 6 20:46:02 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:46:52 2021[1,0]:3857/4000 [===========================>..]Mon Sep 6 20:46:52 2021[1,0]: - ETA: 20:03 - loss: 0.1293 - auc: 0.7790Mon Sep 6 20:47:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:47:50 2021[1,0]:3864/4000 [===========================>..]Mon Sep 6 20:47:50 2021[1,0]: - ETA: 19:04 - loss: 0.1293 - auc: 0.7790Mon Sep 6 20:47:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:48:49 2021[1,0]:3871/4000 [============================>.]Mon Sep 6 20:48:49 2021[1,0]: - ETA: 18:05 - loss: 0.1293 - auc: 0.7790Mon Sep 6 20:48:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:49:48 2021[1,0]:3878/4000 [============================>.]Mon Sep 6 20:49:48 2021[1,0]: - ETA: 17:06 - loss: 0.1293 - auc: 0.7790Mon Sep 6 20:49:56 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:50:54 2021[1,0]:3886/4000 [============================>.]Mon Sep 6 20:50:54 2021[1,0]: - ETA: 15:59 - loss: 0.1293 - auc: 0.7791Mon Sep 6 20:51:02 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3893/4000 [============================>.]Mon Sep 6 20:51:51 2021[1,0]: - ETA: 15:00 - loss: 0.1293 - auc: 0.7791Mon Sep 6 20:52:00 2021[1,0]:Mon Sep 6 20:51:51 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:52:49 2021[1,0]:3900/4000 [============================>.]Mon Sep 6 20:52:49 2021[1,0]: - ETA: 14:01 - loss: 0.1292 - auc: 0.7791Mon Sep 6 20:52:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:53:55 2021[1,0]:3908/4000 [============================>.]Mon Sep 6 20:53:55 2021[1,0]: - ETA: 12:54 - loss: 0.1292 - auc: 0.7791Mon Sep 6 20:54:03 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:54:52 2021[1,0]:3915/4000 [============================>.]Mon Sep 6 20:54:52 2021[1,0]: - ETA: 11:55 - loss: 0.1292 - auc: 0.7791Mon Sep 6 20:55:00 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:55:49 2021[1,0]:3922/4000 [============================>.]Mon Sep 6 20:55:49 2021[1,0]: - ETA: 10:56 - loss: 0.1292 - auc: 0.7792Mon Sep 6 20:55:57 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3930/4000 [============================>.]Mon Sep 6 20:56:53 2021[1,0]: - ETA: 9:48 - loss: 0.1292 - auc: 0.7792Mon Sep 6 20:57:01 2021[1,0]Mon Sep 6 20:57:01 2021[1,0]:>Mon Sep 6 20:56:53 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 20:57:50 2021[1,0]:3937/4000 [============================>.]Mon Sep 6 20:57:50 2021[1,0]: - ETA: 8:49 - loss: 0.1292 - auc: 0.7792Mon Sep 6 20:57:58 2021[1,0]Mon Sep 6 20:57:58 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3944/4000 [============================>.]Mon Sep 6 20:58:47 2021[1,0]: - ETA: 7:51 - loss: 0.1292 - auc: 0.7792Mon Sep 6 20:58:55 2021[1,0]Mon Sep 6 20:58:55 2021[1,0]:Mon Sep 6 20:58:47 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3952/4000 [============================>.]Mon Sep 6 20:59:52 2021[1,0]: - ETA: 6:43 - loss: 0.1292 - auc: 0.7792Mon Sep 6 21:00:00 2021[1,0]Mon Sep 6 21:00:00 2021[1,0]:Mon Sep 6 20:59:44 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:00:55 2021[1,0]:3960/4000 [============================>.]Mon Sep 6 21:00:55 2021[1,0]: - ETA: 5:36 - loss: 0.1292 - auc: 0.7793Mon Sep 6 21:01:03 2021[1,0]Mon Sep 6 21:01:03 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:01:51 2021[1,0]:3967/4000 [============================>.]Mon Sep 6 21:01:51 2021[1,0]: - ETA: 4:37 - loss: 0.1292 - auc: 0.7793Mon Sep 6 21:01:59 2021[1,0]Mon Sep 6 21:01:59 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:02:54 2021[1,0]:3975/4000 [============================>.]Mon Sep 6 21:02:54 2021[1,0]: - ETA: 3:30 - loss: 0.1292 - auc: 0.7793Mon Sep 6 21:03:02 2021[1,0]Mon Sep 6 21:02:54 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3982/4000 [============================>.]Mon Sep 6 21:03:50 2021[1,0]: - ETA: 2:31 - loss: 0.1292 - auc: 0.7793Mon Sep 6 21:03:58 2021[1,0]Mon Sep 6 21:03:58 2021[1,0]:Mon Sep 6 21:03:50 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:04:55 2021[1,0]:3990/4000 [============================>.]Mon Sep 6 21:04:55 2021[1,0]: - ETA: 1:24 - loss: 0.1291 - auc: 0.7793Mon Sep 6 21:05:03 2021[1,0]Mon Sep 6 21:05:03 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:05:54 2021[1,0]:3997/4000 [============================>.]Mon Sep 6 21:05:54 2021[1,0]: - ETA: 25s - loss: 0.1291 - auc: 0.7793Mon Sep 6 21:06:03 2021[1,0]:::\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r", - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:06:11 2021[1,0]:3999/4000 [============================>.]Mon Sep 6 21:06:11 2021[1,0]: - ETA: 8s - loss: 0.1291 - auc: 0.7793 Mon Sep 6 21:06:20 2021[1,0]on Sep 6 21:06:11 2021[1,0]:\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Stage 11:> (0 + 16) / 16]\r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mon Sep 6 21:09:31 2021[1,0]:4000/4000 [==============================]Mon Sep 6 21:09:31 2021[1,0]: - 33843s 8s/step - loss: 0.1291 - auc: 0.7793 - val_loss: 0.1287 - val_auc: 0.7880 6 21:09:31 2021[1,0]:\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - " \r" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Best Loss: 0.128178\n" - ] - } - ], - "source": [ - "main_petastorm()" - ] - }, - { - "cell_type": "markdown", - "id": "49a4020d", - "metadata": {}, - "source": [ - "### Conclusion\n", - "\n", - "From cell[8] and cell[10], we can see the total training time respectively: \n", - "\n", - "- NVTabular: 845s\n", - "- Petastorm: 33843s \n", - "\n", - "So the speedup : 33843 / 845 = `40.05`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "51361729", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.2" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/._SUCCESS.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/.part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/.part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv.crc deleted file mode 100644 index 33674bbb15d8ebb7f2fe4a28ba75018ad98ca3c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12 TcmYc;N@ieSU}7-L-M1G25yS&j diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/_SUCCESS b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/_SUCCESS deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv deleted file mode 100644 index b9e01a929..000000000 --- a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/dimensions/part-00000-1bfe973d-db55-449a-8c6a-9aaaa58b0f3e-c000.csv +++ /dev/null @@ -1,2 +0,0 @@ -c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25 -7912888,33822,17138,7338,20045,3,7104,1381,62,5554113,582468,245827,10,2208,10666,103,3,967,14,8165895,2675939,7156452,302515,12021,96,34 diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/._SUCCESS.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/.part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/.part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet.crc deleted file mode 100644 index 72624f728b06ec5fea8a02b0eb0cce986bae53f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmD}a$^7h00IEfvGJqFYB#B0{mze`Xb(sF)+=tzF^2X-Hd=TA)Q4yeg-YLX zLXN+MQd31s6U*mL>`$0dDdIBLe6=9yQjx3i7n~znE_o@Ql~8HFyr{K_&iC=nUsV}? z4KzHvDW9_~6*B!_;Pep?in^;Gr9Wfdqi`R>$D*%lgwT0&mY>d(0-jzPaA!^2ng>Af_lC6W!nLwwLB~OKwkT7^<<)akGbq10rxS$+wMa zx%HsEQ6={p)#$z>@WxtxW{Xl*Q|q|A!6gaR3-P z1Z0-wwpb1vFQ{Lg6ub7;U3Y-0sqo0AUkPwZ`6fx`C;wu-I}_r+TgHzHXe0BWjTSIK zABl?yh4jk*yhNQ);I~UG@yLN47fPIIIGvH&nwfx_&s3XHytC2IllWQcrQ|fAwcBEg zr7`5BF`sv1;5kOGloJ~^PY6AUtzGfq7+Q1Y$@# diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/_SUCCESS b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/_SUCCESS deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/test_small/part-00000-39895f81-1e2c-4cb1-a883-b21c9328bf3f-c000.snappy.parquet deleted file mode 100644 index 272949e413296f0e22ffd9a89016bbced1437922..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99248 zcmZs@2V4``_da}Ql9_}szz|X<1qfA8)KFAJltUF21r!t&H6Xfnv3CtcK^GOVVMpw) zYwzo>frw%kdl$Q|x?){*clEvOa`XM~Z{K_r!Xz_u=azGx^E~I=q{yy;O0kkxDiZK7 zF+x&3!Y>N{S0d#>O1YZ~P?kF5&se2YFNo_u5b)O!QX#+p=P!I9eXI!oEOn+RhUQOE zNJMFoC{l%gm*PJ(D=E2Djzo-@kHUvGQqJfM#S{&}?;lV|vQ}(pj3ksyE&lE%5o|?a=DeXX&y6>l5Luu&ID`@*@Pbb*5edMBMy``|=;g~5=ze`}u4{aiL zmm{zj{W$s8g_MI|*0+e(=YA?XUdu!9+*iLxT0Tb%8T)BJ)k6+;W?;cRzH@8URt9D* z7#cRkUE<(Zx77}&t-f?bbzcP0DSx(P;vC_JaL+-0Rwr0-)&BFw7WUxPamm$Qn`MyD zYQ}+w%|tMHtk=jNBGnMEN6faICxKy6#Xmc)b%b6`7Q~;MXb+QTe5n|^m4&m~x?dOZ zGVu47Jo>%83l#n~_~4~WT5uR0)aFvI1JH)XU+jPQGh&keiO&NPc~~}Y^^nT(N(il* zF=h2(H8gG8Eam7E2k5eGUhIH<4ls?`{C+U)0y}iu4qWWy1W8>#>UQL+;HpF6pwC?# z;6V1qp3Rgl@C_w@GmUkE&jBSi&`*x=an5#i zpZCr%wEEyLmk!xOM349BU3AWH@~ZdyKR9R52@jtwDB)pW#K2Eehbe$_shp7g+zG1Q zId$tbii7=i#m%*69YJodKJw&<3%qpcIpE`LIdqOYUiGLg4?UOvxK9F<>5n4i zU>eouk5kW_Vb#I#-V3)Ypg3Q2@LnGod>=I6_6if<&>tLR{!;t)>s}T7q+PV?&}$w# zY}vlmXQdN(Y)@~uFw7O)zn(oES|@{o$;T#sTB(4VgIC^P|6~sjR z=16PRag75!Jo1;hNh>)xzf`E|RE{ua*N)jqlbvCsSI3(nl{`FY?ioD7-x*wg`15Ld zD`$xN`S}p2afaBokEWjgB5#<@Je0QnY00ZfRl|I9fr}9(V)Y$o`1wTGZ+;Is2n8=1 z-m2im?MC^{b9uNt;G>=2A!k_LK4`qqLj%9{sW^~vTm>g5#e`@1xs$QG3j zv!IoIMK{h+&xZ}#7ikIJ*;+1Q`mY!6uzA;Dm!&l;pOaxkk62yR>9u1FtmYIpo?Kj! z>&V(?4tjL2I#MW7%*(M>2!V87=Z6w~pfHCr@z+DybrmL5ZOk%P#0MS>O%t&hs4zP` zCm}o7P(;h`KY4Hnp}d$8LGdZG+}dZt)U`q1tL+~M0eVzWS(aq*&8x877shgqdDb3d zk)O<~f1rtDm(`fY>Wji>QIdti6;+#hf)*isEEebC3|&o|B+2qYVmkb>S`{ zG!EI%2^5;5c`HQaXP&8Q3UUGk4$Tn!A#ej7S45TlDsa-gYEMy5!P~1zA#t1v;yq2i}rJt!MqsB%qt55 z4+bJf)r2>@3t5gaWa`FA7EporlSB3AbMgW+v!;t)Pq3sV&5{0?VKf=ri;g2s5KN*c znYAWP!5z2kLB^@`YAlpVTxqVcyx^TIg>R6tE=eIeZ!*xK)iM|uA}l_HqR-qHhH*yL zT;bXjiQd&t6^iuYD%PwTYbdUf?kwakrnlc)@_Znhm(z8BlE8}06UqjnMQ#?cF5~L#9Oj|;^;vLMAoJ3Yr&@4y@74j}cdAJ^HHLJ?g*yZi(G))IF=81m=7GV3fyOUe|S&hxl=w^rQxb3Zh?d@N8oxr)+>|brs%>d}= z+Th{sKvLngGT^1sW`~J=TQ`i)U>E2hvy1=cubdKo>3;Q*?;jeQe?o<^nMX__l+C~L`fRf`1A)24|U0x<}YrkgtlQF0zFL{*l_#)r7NFQHhi$k zd}XrJb{DV|B@m@AV z3kOcCnLkbcb0-ABrQ83Kw!%eggGpC*e(X2+fgToZ9{JQ|m^&OVs+=(Xs0#Mp*uSzM zMQ?*8LrX(W!6^eA{E0q4MxuqYkDd#TP2E8h-*T$G;08|bw|9FLBmeEdo(t9w90MqFDu%qZEn>(F5-QdugV5r-gMdJYdxp8!MInA zgKHzHKW1%hql6tPV)2{bR4`!GMtVw_Gk8y+7PfrtVuL0Bfaq@#1jaP&qrFs8<_2@R z$OkN3=W2sZ1P%~58~HsyeDP2NbPJTC8{O0(tK3pC&>c7b+Ng zb6vIbbv2AVRB5nwRN7$9tMhM$wKZyN@TW`Kl)yJvHSpoU%tIecJWtJly$NKF{-&2HL57wtYD!!0g5C8TSi#JdWD!-`G=YgTqZu2p`tpSHPKv>;8hq zDtKFJ|F!6~8um{r2k>;Y!ANV(;on(K3mwBkA#<+52E$CBpMIX}qOrljU($Ul-0bBb zcWY{F$Un*yr@*sS>`QyTRv2kqbzt&)1#m zr-s_kZmGFO0T#4ZH=BG-1p)ikrT+O7?%yw4JOjg2wySHu7rCpHjV4CQVAZB-_0KPl?TtGw-0Ar>j^0j*)IaDJn-B1u6AnZG51mS7mFLXs{gq3MCS_3Sl1>q4ys5@ z2j$_EWZ4UyE!Nvu`SbB1)f!uvu-hZg@8&8kTzWt7;P>-gq5rKTM>f4wK>V-QesTO> z0Y!&j-|YLn8pd<|ZVfbR!DV$-RpN117*wwIDNqV9FS+*RrpB%??{`!D@GELt1WUrO z+ug>i?kv;5>T#QI8a-8T{n*P0Cx4wSnC;v6!~3D`0%NBo`QnqOq)Qbr1* zD|Fc)Kv!qepW|2SpddN+(Sd56Eu19bSKY?}(`(nNVd(o$Ti%zuLYVK)>)Yn4;Lmkp zkEa(DaPmsr@QPL%TUbQGAY-4rO+Rl|K&MS}((D}tXftGVscEkQDvRbjuk%!cHU8ad zk0VOB())hv=U>$ze`cxtp{uhkY?2H-bn3=zp^DXP*RaceJWPaSasM8AY+$~*R)fuA;$4@E4H>qu5 zT!mM@AM#W}yKB4p?ryJxfW&q0zT@;TcaL3@U+&>`*Cpr6Lzx2GlhKhsM!3MEn8F#q zWoW?S*y`s>IS#uU!b8LJJ^QZT6QFVL(5hb&mGD9G>&EYPX+U&&?X`9@@p|`Msn6c6 zwuPZ?{OM6G?&#qC@F-b!q#jgZhSA(KHRMgs857Z6Zwuo{xVs`SA?o0DR}5 z!Kkcz>H|+nI~Z)?{bHZLdZINhHu_=S_!+t3cUAD+&?nIr2Vy_95LMC5t%fU%C^d9yuIzCx)E$b# zz7C9@fc?a^cOmi<`1{RFi$hVGgzh#Q=?0l|+e%JQ( zy);n)!+wZA;H%Zc2l?+=$9y$5x~eEu7JqSv08Sqd$JY(j!M^1iBj-7(p?&Pw!JI@4F$u`KJEQxxwyM z&aSsuJsf?sTI5aCBFvBH1Yo6rLTf8s)8nzXnd8IN-bh z8~@tu?z>V2b1H|;KYYy{a<@L_7k1S`L6>`9kFstyx@zLB@Pt&J8tvA6o< zBv&2OR=;o_uGWBxJG186Z>~1_?DYP9TSjNQ!1cwZUfV9HAW?5R7~-md&(Ht*Bc@gh zdrGD^D_)_2p}Qt#_kV}&{HhOAyRF9INcqCGdr#|OoA=bE+B`QnmSkCBJ}ie-)AR#3 zEEM2OyGL1m(6yUaI~4@REkD%ptQ-z!2mIcRR>JE~nI0!y^}vj@4<25n zhRkZu!@*`3I5MW^A1(I_aQjF>*ypDLZ2IBy_1|BrZFJ+?Rn6iKI%uGMdW4~Hr55&| zsQVbPR0j(UkDnz)3Q(Hh-BmhQfHapIJ1AZpnVu!pzyL+v+{EHrg}KbxEpc zvODzabOer6V*GVyJsY!43!AqdE|hs_;O5t}FCL%Mz?LDagn)f&fWDQ{uW)$hJM~(P zwY?g`I^A(uG{FrTU;R-oEfs8ZU<2t3V>6!7hX)D`xLge`R*$CYHENhVsmar;KG;9D z8sTV8RYC2SgXqT@0>tj9oweYI0O$V5y!m{dD-I9u@3Y)@v(a7}Lsj>Oj0UDZ=0YM63mk^?d+;HPr8l~c6>#BI1a;KK`7_%@_} zVf9lr%%2pw(eET)kCtv5XaVCF=Lojuvl^PUi@m$~J1v-b{|8~18YbStfaKRP#Oaa<2Z5H5n!yPt+1y^rcC5Of4w(Fdu zR4_D6lH7l(3;flwt?vUD1GN11>;6Y`wea0ydaOgR0+w&7i2m@S%0^$GI2mTQ;gvfG z{f=Cm7pH(1S-W%JZo~7Vfqsn+xN=@JQweVzQ?35Z)iAAhMEKqmC8WIDHSDKLc%E7| zmbmYeAXPfEZsF8C2!AS!y zZ%;o>a&?914tMpxb%`iMh*13jPY}C zYoU{@X64FX^swb+&&loH>R{?@@0PRc^l)I$%&?688dxB0+T>TGD|G(!IjGw(J(Mk$ zN>5zGcyZp%$uGa@VSE9dDLtrxGY3*+-WoN;8g?98SFMNpO$Joj2dE+U;nC4Ki2|U@ zBSsB;@9Un0&H3HWM`8;DwtHPxYB`ALG<~^$(hb>uyggW?&(c*a8t!>IhUw` z%!4~ySKbm}M$>OEJ4kiFnLEtM3^l+5C#UB-$LgVf(vJr}Zq)9g5*3Wi|oZ1StSS%6W&*P){_p2Vqf4rrBqXP_%%s>5hJe!XTM{ z>7sIkHm)qOYdmLtxy zI|_B*QJ zHpZc)Q&x1GurI6pY|GoXEA#1n!iBT!-KnB3p&o_7^Bf*6>JPFfEAt%b=V?g=VJ~(D zcWT2H-apr-&Vt&9v(?so>fMEI=bhMzYv(xC6lR`x`@PoXc;IKDwwmkpY>!jKU!UGN z0c97$NB*S9;#*4Qnu{r`A4El+G_8$|5c}`Ngr@OwG3D4chKg~%(%&58lAPkqJNaeS zaO!2b$#L4xJDuCRc6e0N-tfw~ggRQ7Wr_DbnOxFg<;q8N$9C)2Uvz7->vBn_yd&>< z-a(4GCCIB&jwPH9i0syxJ(6*$d8>WiRF^&R28wU}Jj>F>Nw9QF>?D}K7wbN+7pZ1M zP)bF!D2LdTU2VXgx@W-&K)HZ!O_eV*6r?rR@H4=<;+Kqgl?uz9_u}fMHST;^28nj_%hqkiK z`&7M$9~xk3GO{P{nEv?KxL9HIS*Eg4@14*i$xmac($!wx*H!b`m~pL-YweXp*BYUC zY2U7|2AD&qE~r`BZw7TWQ8BhwUTVtQ6?;8-rbcxkqfk>^nz_Ab-4Z%6Chv4+k;Vl5 z=j}6A_74D6Pgk{2R+x1^VZWSb1q(Mo>~X;nHA^|3KVWHO_Lau63{`B%vcdb8QB5`& zs{(3DA71QRi>R57D`(f--~uPLJn>!G?D9g-wT~BEPA!-{a1OO@LHFe`8KoPgp_|su z>NrFdzka#z4-S^tz-{|JE*e@n)o2;YCXA_Wva`zfmJ7R$SE$}T%CxlK7;n@e*5bns z-}e}f8~5K~#Ut298*hy`a{uy*kw>X(-J>#`_eN%mTPx;yRYnG;3&%cpJ2$9m@xYax z0I%oXCo~WfnNXaGhIs{e$wsev8Q6LBM!%eTPT+8sp28lPAhl0*kkeEDOmJBvylvgmeaidCUDr^FH%`p8~}QaX{9F7DUd zN!TFr`ts^TzZqXgy}ie2t{~|}DfI*j%_4c4;XBst6O%jBvapPiUCjW&Ue>>&d0LId zl!sbNkLR%v+CG0vd}z8yVb5TXnV(YAN+?y|YNuJ6AqPDQTqh5*6wDcWFN@B7UT(jOBcSs4d%#D?h2K^$x3Ydrj;G7`*n;o@;AIO&4TPU8So)}`lq z8q?Sq^JrxDR22A1E9y9FH@{=|$IU6@ zWp(IOS*XY;H5;U8lvHHapB%+oJ^bcWik%R$ywxL*5LE{1Yvl^E!z+UYg!BbQ9=$Qj zvK@|5D6cFgX0+dY#LJMBhcw&+Q6CZF{Z7GY%esch!Y%VUu&tgQ;6f(EqaFPqX z6JZE)Y#k>7xdnIxD5uQZyd=i#i8}V=Spzzacxy63Wp*9CksZ>{$2hDKiHkLPtq~a0 zEP+YZGQDLB7su-FQqogiG5H9c8pXuW3M7l+-f*XaIXs*)iaTYHS}uf`ojDN_@>}wo z%8}Km7aRQwO4|0TG|+E2B;u8Zm;xF(@Zsh%BrW4monQMUD97X~L!5c7(UO4}e(`yc zbW4z*buF6h$yxEeGSIQ)08uo$V?-zkSxs5i3}n`B(?n+hE42m%oKFfr_E9PU+&?^` z{bc5t=r>$Jt-mkQTa&zT59CpZGEriq9(Ex!3QweV<}SbwEVZmFPFRa-kRPfD5K){6 z&k`3TGI8c|PL}QWh%W}9+sFIO3iPwO_-pX|(vu1QzhbXwvoNd6BY2#J3o0Vv6TA%Y&! zeMue+3HS+-@y~p4u@T=SZ-(fzB%g=`ri74H#bzUUXS0a{$lQOeWP-{TdNoK}o#DM5 z^FMi-s8M32}SGZ4v#L5Cc<>Z@(*h zE7*j|ZYcEJE@uU_)Y`3kQ>L^Dr%MN`(OSLMCXkZ+F_M==bZ6q%|C!%*Ho}Au2#<#N zhy7LHVk0a`{um*82@y{OI^u?jkBl7d6E-+iYZI~vfk^Vih|uSrne)fuwwPFN5T=&B z<%SA!Ee!cHci*ubjg9yrc~S%p5JG?mL4@!k#QZ<=$i*f^5CQlH=idb1JxbV@KH1b` z*#89Z-J4Hj<_73&*?}aFjie)xyuDjqL&{J13SfM*ZOE+idYb@GUG{77?PF5JZG{mo>@jV^=3YbW*uj&*eHGLi-DD zPPd-~51SxC^4dr~A`w!Fz}@puOuNKVH}Iqb4vHsYA+;e9;kV((J_LVsfsl)HC-@vz z*aXPj6FvHTNl?Jy%Z|;aEi*vBmTlQPXO%Flc0r4h3~%p zCBW!aLFEB=bvEIVBrK4$5<-L%f{YMr|M(wgTV7#{?@8 zgko0K$`8#}0ue@er#~~x&*E`F-Bd{nR5pTt+Lpzwdbics^67}+M~G~aps-=_80SNv zgr-k*W|okH!vFVqTaU< zyRa-pE0ipyV$}|UM$57)Rzm40mgV)Xted;R!^zX$%iEoG@nKneUx!A15|(!Iry8?O zl>Uv_0BO@^&5dke5F1Q~v}nn)0j)w=wsn}CWnJ5Zw{6#yRZ@}&d@&YZk>&9ZXe3Z< zWE4%Y(Ns)qTze;07SFOBSelDrn|G}LRwp*Wp6$#^*mhk|Vp0H`jE{A7qWr0DDXHCi zuxUM6`(C}9H(q~>g7EiPQ$}Vx)(OAqkN;;4U_nE0u0L_oWOg9WO~HMWGBvU} zK2YB-nrGQ*)0?t0%q(tG4$HP=b6F=T+iozM=U;!nFrJOfpDDp#<#{@kqQ=h3W0h=Q zC7V3Dppa(etZa7uWpbUAGa#q8)b?f9ASYe)Z`+wt%& z+r`pj@t?c*NH*Y>yNqXP{8*FNy)5h0Zu&m_i8H&t2W~L#V4mI2rf#3_z&2+OIE>E_ z@Q3L^_}LF`lozvXze95dJFtV<2|ZbMgHtl=F_${rj%9yhg?7nDwg(B4pFdJr4N%BqgzR$=g$S zHfZ~@7uc|xir{+8f^B}S=gRASJ9BI`Zj(K`!5=@M`UbmrAloREy2(e0^WBgQ%t!eEESa zyP#T++q_I*Z{5D*^-B+S82)q)TY^87gxz(zho`~t+WQnW_@61qK4AL|eu%$f+0H7R z@K`hzuS=F+WZ6gdvFu|B?(`B$$IfTjCoKDvRV{lq{yF>WU{)iigX|lGHjd%j$=P@BlmD3vxU-#Dstwhs_;6C6zV79voQID=F*5IjKe zJ&7j>zWZI?T4iw8*b)Iq(E`DJB#)i2Lj>m#+(?9If>#L+C-{ZnUE)6oP9(VepZ>%N z34fPruwb3IWcnHv7LpnSbdpz3>H|o;M&dL=(-8bd5`sv)N9qHJe-n=$OWrG6*UK2P;;1PlI1U3u4tgP5*xLUmLU z=1StNn^9wg)&)^0N>Wqkote@YfgL_Q!7O^16u1&$E`tx#hnI+IBauGI+#%Kyza&WfI9h5=!bdSc zn1FxHw}-4y{M*eGRfwx4;32}-oR7~fOU2puB7O_vB-TxgDFv;IUOV8KD{6-f6^M_+ z=io>2oPk(#V4xl?w!RjlG&!<(WS|60d!cNjn5vBTqm1zgMaNq39Twk@2izQ*s{e!2 z;t@begX%}8G#q!HV>XYvNLXZv=eYveL(xQp#302(CSGnu+12%9T$Wj#g+~lCOaiKk z_K6B{qi|2qb%TnFyvrtp>N%X8K6nu2iyq7I9gxHq_u-#W1=7F!yt8FcR48)P&=eT! zOVPlXX+)A}Csy}lscb3k`gA4>P^(3?qEOV>EJ7Aj z3{qM=Mw^fzaVVqF-f-G{-+=El-_Anw^>brgwh?u~=NRbvC15GRy^Nn4J#&p);9ozf zJn^(H9^Bb6CC-=f;}JUxx8P4C#&hu#+KPK=bZCqlXQ?xwqCx~rHZnTS=8$PCzPt54 zGVdMB(M)S`?ph&@A?l;N$h)P^3I1N>GOVtuRp4gk~e=lejtJ z9*8?5ZV+FDp)JJu5$8#q8gXL8SQ4if%m8PHT>@nq#M)BZiDx99%$_N(OQvjr9C66R zu@Qqy92zn3#8DGRMFK-&S#f}JT&Dch?q2~4`O?2F;eU_f$6d#y*DqCE;K(>*ViTb# zY&R$*rRE@t;*3adrWBj;;gbS7gU4TFq2$QFqaI0-EC9333?`5fD@FNu{$U;;5EYP) zkQSc+_%BRM`vWo{UJ`0HQ;eck5-zGYOGw~Zd>GHzNHbnf8OKC;3YJkw?}1M$l+3~G zt`l2-1!R_(DMKuas9xfH+D?iaXr`QSsiqc5um0k4vrJF5GnOC_vSlbL9M5tm%2`}XQ7cfmhg`sZ13zbf zkJ$Q?@nfb)afc)$N{>Z}R7OuVPbnRWKZ!8l&NF|9jI}&AMfir)a%7;!aui-z)ImKe zm55PUDeaM17j6K&OoJ0BXZ#c>mqOmSbGso5uVrjO%$bO1^mt`SkO>ba63L7jM00pV z*E$&Sz39)PO1%^p1LINX#f0N(u=>dw$`l|u#p&Z)B9RF)(56>uXAG|vPu-gp0Eu*@DXm@z_K7(}uZd;>mO-AZ$^#r6$mpFr> z)At=~Em|n5+LgNQsUAjz7M<#{*xi=@Pw3!Jq6^UnxA+NQq~;PP$qWT zf5cAxpDJ7a8}S|k(-*XEhiOStwoAeVlDF%U-Kk>4G{Gjbkh%*(=aTS=cq!sPiH9Wh z6(rmvVF?NEhcmLgLA)i& zPbRb|p&3cIMZ&#Zx8~ldnW?qKCnWA5<;f)cBjFsODerc_Kk1mg21tG}3A0FiL&8xK zwl%t&ymlOe^Pd~?0f`($WC%jDlX{Z>8?KSM2NHgh@RWp+8J(k2om%T)@s&e2_g1;v z>H`REd%dn~-Opn*aJAq0l*&DBw!CU03y?6Ch=M>8{{2P$ByWxCHfL1(KYBlTeHUwKoWWx4|iS4m#5 zvS-btz%ZSyzK6&-q^^aOf0O)TA~O;B@#l(35iO3mH_U6Lt!{$InY(w)auaSVfaJl` z)9&|SlHB0l@B53Rmb=;H9wH0aHy&HWx*2Ts1|?lu;IEv3F zv;vX0yhqjC_^kY&Of!6yOWxtbdWg9@<*UmTExg#f>Yj0{+E!+17ghahm!bd5%O!cI zM0T=X3i4l6;08p_^~zsyV{&gdAayh(PVay7(XpHgoX^{k-#p=MWJ0$#xNf0=9w+fP zkw?k41ti~ht*-E1mm99IYNPwleFwY2)rF$n7rN?fbt9XHENbPn9dAFdpilSxRjxql zEr?vZXF5|gtqGR#u7@;VvER)`-wa=$DVa3_=P@_b*ASV7)E$v}86uk#xob*}--2I# z^gw7FQa47bYya^?PC(>mQrAW5g2wN1D@nbhhVIuatgAu?Ijb)8(`2h4FW-85sRhfL zB`eDE3$^e%Vnm1gjM`Q=Lh`5gMytQJZfUUPv6DRK+Q)A@zVtKL>W+xqLS$r8r+DR+ zS^DCkV3UbR6i}YS?Ova(f`NIK%kRdy!?*dpK8-l;Zp+{QM~<-kTaF-&5v2btwE%t!d=w1hE3#|E(|$U}U(%Rnq)d|lQN0YoGl6taa0tz`kn&6m8oxv> zX@+*NV-Qcb3S}5Zj<4IA7TGE2Fj^7H^KHWUwlvSTi(qJ}GF$|aG_7U$s1^)wM~fTt zbacH!5#NCi)zKYkMlR|kPw3nQlly!kos`VeUAxgDWeS}t#g|qxyl3|yyB=vBaEp5O z>e)M;rc+(|^yT}RGI$43&rDCcQ~yR;od*m|!EF+CXcPLKj;EPupMf;Z4;risNY?QZ z7&4R|N)H?s*H$!OI4ufgM$jYWOtxs0gce$Lpy>`g?ZDt(Vem6b@Eayz^cZHuSUY+g z%?FQfOQ$AIm>4~2@)SCB>NI}XbY_M_TbgFt^CH?jjNzFav7G79o91)Hd9*0EbGkUa z1w+$4>0k#YphdbAUsprtXLqLYmDLh{CM{wZ@hsnDEM734B0F*YW6C?vX2L~tWZ#QM zilUkLBAyY?RnqftSJU(9V)=re>d+E8o*BU}Tom4(&d@EEEm>+;x@@^z!b@hXh#w~E zxf0h*tzuR){F*WmBU)R|&_fwUE01IP)9X@jpRK1i&>YR%NoY>GQS8Et@e|Mtk0%SW zNyMjn)0@i}E-PgV?gTlaw~Fk_evr^Ed?$JvP5+47vAr!LVrWlVO!GU&FBV}~&8PDc zMuhtdUuEdd4xM-LBWZp&!*QYx49^eT1N`1}#!m_okw`R*5%DAKXkN09?l7rYG9N9c z*LK*ib2>mf91NxDL%K4C5s41dKhdE_JZXC1&-^dLCQ0%R9;JCHZCMyxp~KzMYk&h? ziF;Edk7P*Pakz>r14VE3rlM*hK63^nF06-MIv64EaG|Q@|CMD_)L5+ z9`}44XUB*c+Kz79Awx9c8eJ}>ueTI6#m;5JQWZwoEQB zwqx${az@@kL`N%<@xdV6HJzDc-huXK?%|VbMG@(@Y0*)hyZ@kmqR7P$MUQB{f1FtS zSORnbGf_SaFRn?}fJzLf*hO_cZw_w8@rX*^#u z(T7D$9m6kGE_{P$TnD_*(OWzl8U8oNckji#Of>pv?uSHXsA3__{Fuv3;zcPRnPrzn zyvVLIBbEer;6j4+02D;6i{P2`dO-B>$ zo}gF~Xb^NrP#*~-2>Kvpf!TxiI*qno1hNj z1+mxoZ%!z=xgaGYQSUYWdlZlA|IG>IVlwpcR?ZoPOhehpxe>dTCBo(txPoq>I=5z84AB zx)4!Rd{-Z-W>82$UAUF+C_?G-4LHBhuEv{-zML?#j!W*w7YY+C*V9F<23ZZV=Urzei_xQk~z#IvW$NBL^#XLlz%VN%HxDV^5*1LVt(6w;|ORI8@bg_8aM}Zf*5e zriyQS%E;wqhorl#(iu6IvXHV6G^08MvjKjzVOXURonJRqWE#EXk#N?CPT?z-#lGa* zCdY9byZR|;v@nY+uq(D2>?-k9ys5Jn;^$<`&R^lI7r3fgL%ho(i-DtOh4k}|QSr(W z7sqI8%fuRKQ$8-wK;>oo&n;eyXufhoVN`yZQ(a8%r$w8Ci+<~2K5x+9y1+$=9qzSI z0Lz_K|J*M)-ii_uW$3&z*2&0O?Qkln!7Ao%1at5%#yZAs&^!OAb-V>n1xdg&lsjcl6W@f-TrgmJ z5Z6cScNV9Snp2{(!qLaYa3xz57-A7;Rf?qEvGHfE4s^Cb)P}1>Em25_)!g>6F*`31 z8=#Q$Z^QB3FB-Yd;~P78hF>&h(J^wXF~o|>O5TL$1Wk=z2hnu;J)@x{3TL6Vw5~(v zd1hot5{!4eb|J-mZ1|j%5KZ1^PLnh!QS4wfqq_sQo;Alg(A-&L(&-lScD9f@n55?y zQs?XZZscTH1CezX-pVK;uO)XOX|R*j@z=n#&R+2y#h4$jw~$H7lmw-$-ah)RBx{dY zMPe=MjcNUh*fG3>D_P|!_FpU)IqBal*ME=V>#P;oST5&6Oez|rW-+EkO=iFZBf4(3 z!z3;yb`>~Bh2m*%l!qv{_ro!%i8-u#hK|R&iUINs99F|}Srev-MFz~Aa+VM&PVzpAAy9(Jr^1mZf-KDYj4e7BofCm@#BCFc(K3%cxgQ zSV}PBgHmLSHzWL_c!L8bTQTt}vN)IlmEwN&Lxsr1o8$H3dM43~@RmW!I+5}j)-T%C z&yG*H)wn{!wpk6C8^o89f&OO>QMS!Ni034^yRVthI$#@80l!5M??qf8@nXc$5(i8i za)UQ>Fx6$)0TFnK-z0Jc@w>#25*I~WAaQBL#S!9#xG3Vs@jU+`Q|8kAr|Wz6Jd)du91)$^64nEH^Nt`pK1saoB_Y1@Ov{)OAR?xrqobB zlTBi04lx$JjDKv#(3D<{8`M~AkV(-j+}tF@EB!LeMzNXVcn1OLc~zkdFB0T|o0%SY z4AEGHZGwave24luJqsv~g3TFHzZko9c(vBIpd;la#?vfPfgCwXhT;&~DyMk^XRJJe zA1j*oEW*pd2L+1poHxt>6qt|V7Exw7lJ-ZG2pNh{7pW+Q1!)FC1BG&&uV4Qdj);QJ zxSwXx$Y_veMI2XcY$K~O~2D7M8`jlLSFfpneOjq zGN^EWl;=5^wNVuA3C=H8%;yP)e0;QPJ{4uG^~BxgoP+(5VKqKx%H;uxu&yHYDm{pJ zPqQ=N$LpDQn)ejrQN$gMa3|EOL-|Q8wv7fX3|;20NJT5DsCwZ?CN)S4vBI67OdCDS zldusq^RrMbYsAgSH>L`a`Lu?{cfzWv@r(;C&A?lON+Z!NJV5!B3?mv3HRo|`JHBwe zW{c94tiiw;tcc350|Bco*a(!3QEnZRpxod!6((e)VH@64DLDY#{Coz7?7BFug#do zFh8fCHF>JmmL_ZZIg=W?*8@m8Ct2RSY{!haecm=c1kN6R*kq3f>@1_bcDHH-53+m1 zuv6|}7<2ZIubaF;6>1jEYORNf(JR|McJ>1a9%r}R2C&&$R; z5!hcjsL27xCY}&kF|fyhXWro8ru)=1&jSb&5Bm9w2zI+eUBJsF+ws0gB%Nu?hxv+V zUtg%2m$rQNYfrdfE$m&I=?!t+PrEL9h4(3G*km>I{QILlFL}Z2ec|dMKk6aO#F>7N z_kt(C^m2_p=V#-Y7Tos!eSEYlG@G<=-Py)IU_W5#-MVZ~NItV!`rBJiSo%e`=W%~; z_)usl+j8Cj<`J5CH$HjUc-nETCx7*6>j^_A?3lLYF5VX`b?cm-BRnBuM{$$cqrJeh zG`rgSv=^NDea4&HM|>bS?s1`gdmmWc`}>qbT|I64tC0O;2z(%AAY{Lj(5uZ|cHH)W zQC-K)d?azTDLX{^IMQVHmb=gOHvW?Mj0d?I<-RE%P~EwDT&u_K@auDZyWA{y+x`)# z$Ayj`{9SGPdU-?0w*$TW!KY79X89{m+x{?Z@0MD(Zo>O{{JP}%Z#}%AvHDb(?J_sG z{@QKCsO#ywi!ya3(%qpi;b0}M(*7dnk|g^_l1`W=b)fcvtOli!pX zVBeKa`Io180JbZCzpgjgSnQ+mwC#_gezMkuY2g7uFFH>B1^4rYu%z-%U)>?8)vDCQ z5ALvFi7uS^;$cf)ewDCo%g)oT;FuOUdbphzOnBX_k$e-LZ*<=~hYopznY+f%h%-QK zf$ItWx&f%Tz?=(s-kqKjx^keu4_wcgXTRx|9$L*Pp6k=b04@#-y!^Zy*|G-Wisybg zaN8ZGzY#Wn8|VwpYXTFNKlg*wkMDxcIC-W0rHZTgOBOmA0M_|6dQ*4Z1{H@dlU zRGt^u-QGLDyjTxEZYT}=ev}8uMn2A+QLTk-WBZjXraa)%fV|V=&7Sb`r<9hOSXgxDU+wsnL?gkGx^m*`MJwwqH@ctRc*2Rh$9pu!^T^n8L;9*nPZ*q# zo$)rr2foa`)}q-DzL2C!>p$%WFWdfpT^~C%i`i>{fzt;**>uMZRz&-re7MX5ZXNu3 zBOl-2nrnLf{U6>ya=@uY?|yL|q=(`Y+C9y#c-Z!H>-J((=-lN#Ao=Tk$+k#u*pl;; zdfbl&pjZ4jbRo76MAuj>tzLT>j|AMvD$VXyd2>$rp2`z4a`pK8mo4)dawh6<^ zw)=WQe6#L5ucmpxqVgHdwzO&tyZftGb}Dd%P6Lldgmv}6`-7x#W-A`I>Bon-uEX}e zVZS1xtC9V_jxBH9)UeG5MvgZosJb+Pyls^(seLu@ur^>%n;^Uo*Y4o3^Ly}qJN=-~ zl65-UHp*l_rDlKZ>=SoO2YY5VR?XYs3meyb?`}=?w(;tX%$|e0$LL^M{Y_QisH2a#+=o5o7~l4+y76hKRbNUYAjiseug`zF+Z%o@-|v40mywWi5VGIby{|EOIY;rnjbD5IxvxuO7~J(}No`ak z_%+Gr;sswljEr1ATG zrFytfa^UPyJl`G5MvrLS(E!{0??lZQZGd58mOh=l3)}yTKd?oD4|GmejjVX@1-;z= zKg!-auBoMK8=jqHhXev95Fqq~1PDb11Z=276Hrh<5L8r9R8Umx*b_hmMMcHlz>XCa zJ1QV{RP5aY9=oTY;!%&~eAmW<_jAAR^ZxPqbFrqZS+izMpFLUAZp52y_%62YhW@}g zCC$$oQ2Nltj=Fz#QvA6N^WN5yW_wAsD^EpaG&)fEtaagkT!)^|&)pa-a->^(9BVff z+0V2W z_q67noamp9qr0r`3HyTonl)`&=%CyY?nEs%g+{J^pr)o}trnent)UTFGj2pffA1Hr zTi-gt@uywFgtTS*mSMb~;=a0{_ZSUT*4=4;?reBj=T__Qo=3lH*-N#2pDg%1Y|WR}wp2VlYHJh5nU?QR<};6~ z{~qf|TkJ*^FaCDt3g-Wo?|%8;#b3t#>P$zi>U`R%N=g4AJ|hoZR#Ji65yRCTRW#}3 zIYIF!*mHUPqIg@f2Kw@=55I}|>7|2EIYdQ24ca@bF3g7R)_*X{or3SJiGAGFTH8H_O~tFn$+g{>6ebwzUJ|#>yeh!>a=HPldkque*f*X z%vxKz{=%`bbh+x^U%kUFkK{xZYi~ydtN#&unW=x;-});eyiabmGwpxXIBivf1-)Y2 zJJHJDjp_zkt6q3xF1?VGjA zl5QH`|Bka#LwE2$l!?rtw}0)Sl?^+wwxm!=FYlgq*K3T5o;tR4QIXV!UOnY=J-xLv zy}o5p$Axl?=d05S3eR9&cVYCXu_X?4<#zkGL#iF=+FEl}GK2B`-+L0T)T4P0t5tM% zuaRBu;pbshy-xSNeFpvG8t>VyCyrD#`urj-&K+CqVfj6X4DY)^MJMp9CzKR9Q{PU` z*RGGmIwSjdX4k1MG_~wum2#Io?bY`|^~k06)MCRa*TUWQ^qkbQ%eszAy0G0F=6*En zn2wwld5Nc?Rb|HSkFEHR{kxW*LAHFKzc|>gcSNp|M!&P|`ZUmyro5=pcXd(!G*Qs{ zbf@jFOdWsPA^otE_x!$%hE|R`z3z9cZ|-}KJ{cEdhwrfC*9`CELg!rWRJLxe4c&A` z{>P>cwmxh$38gI<8yXi>V8K_&yLRzSkUB5_2!d1ZRe|~rZnuYReU9Fxqnif zru)NbfFr$l>igo$4mLFPbOTfO*@3p0A$IuYds~9>e#WS7SDu`6peKr-CAF``&*}cP z-*(gPx12#fN*dB{{-Y^hupX~DKKSEDCwhNj6#*wAXv<&bQkM{Tyj+*|J^>)9h#uo%`qRMw*{i8J?H4zTEYVBQ0cVH@|uBKmmQmdc68yr=+bu$U2?zO zicVdf=|bbv{!=ntXu*1)`+Ya7f7*4-`Zj?C>D07OivK*D^RUC2sE#S_r=kNcC&(7> zcBGc0&*%L)LPNzRr%aFTgM5mUlegVa(lh5jISzGnr1RVgDm-fK>0WpH4#AE1xkGm6 zkArPpXzry+le!F2(eE8L*Qv3d>bB<9Zzr5E{`L5+)zZPvRK$Pjc)VUi<=+}-eOu{B z*BATtOY*X&%S~(9dufie^#-M8q?eK=1X|tc{!B$pw*|i?Utu?JO6u7TQTWyTzxE0h zcO#DUhh52%qQK_^anf?VfUL1o(-u3uE%xF@ z9h&oaS(6>L8>tS;Hn*b(JKhhBK|2ZQI{Dn~6i0fh)L`N6V=CHmpCcynW@!9)%}+ad z!|iNhwk6{p17mk%TaMemUta9!m%r{$ml~t}KXe}UVwpAF+tF~=)Eka8b+$iTdoJN|6FD8?q!{t{x}MR5staXd@4fKG&tkxvcW|zbaM9(9?VBAZTXq+%cwoK z7D-^QIIqLrt0R;&mY;rzRV#nm!|R*9&-BJ@%*XBeEIn|*mf8e-9YjZCpZc%8=bHU% z=0){&qUX!&Udpels7jiJ&wu7&u^T#uBK+Ez8kbc zJ3lnHvsH()jBR<3o@xr{lXUjmJiq}9;B+~Z(IN*8Ew@shKeN`E?ml|Dt=~vH`p4Xn1qS9Cs?vC03$Mk`rH8oYw&G=O1%^J>ZmzzP+=3=&n5~>iXw>cja&;Z7QB;xqXzHHb|Nx)4$_q-@e_; z`J**-+~T;@*mXEBvK*Uy)7+kBdY`VJl4wo8zll&@I-;WOub*lx8sSKtZfC@ww8efi z<>bu4AJmkoob-6aL)e#H*LO?<#+Mh~4z5x6m9*8MsIIen+tY$!@k#aId;W3|vkCju z;KzS{3caSKHMXrfq&;$^Cm*he(xd%%kDW2a_OK&ux!2^np!T0XeVyo?RLAY!15`Aq z@AHjeIIoD9RlQ(^y(677>)nSywKH8AX5>GN???xPsr#9UDuKRM7#M=N}-(zWzRpN;%e^X=%Pw?uDZrldt}HhMjU zes&*zE?IO0E)sOFTaO&07TH0b}qkm5R$LJXvy3nn$lfySP zbw4$4szsg-rt>1k70du>Lr_#>g7z=#TGkgJY0U-4=wW<8t1+o{p+G*hBIuFAB0^~m<; zvl1IU`p9D#*mYfH^y^jVrRBb0XWMVHvSDwt#hA#zKX=af_!#q?*PeC#om?ml$r*pK zQbkivAMz?Nwx$&WzED&2-BYpC8U6qu*{H%LeE0LmDwZ~lEGYryn#nnSftKkc%{zUtgGYM7FqT+z^7 zH3|FDiSM7-Dc$H^)x(TdPIk20CAH6fTPHdw=Jn=FgJ6I5Uo$0NFZKP<`kRJ6Dt8@q z-rJEr6P)00R;lTZ=eN7<4Ny||rREG0}f9+7~V)WgkbxJz*^uf|u zH7c4hXjYXb!iuiA@Hj#cqN3N9DzlkAYC5cat^CXk6_s>3C?>m9n9ut!?}2>}%loIo zDMvvY_eR^DUy5^s*{!T!)ZmE=lN8_tr z21vG9Q@?lpwLO0^r@f!<+*SLZd(oVQ8dwceRpsR0~Y}YBV&+?ef4! zd#veM-_q)0oEI3&%Gu?)_B8FCV)qQ}iw0FH|Nd>KirVh$|B!UGqq_HhRRnt5(`{XL zofu?-^OCMdH13NvwAUbmw~rsFem={!2a8x1dNIj#>-%`AC2cWlF<|h!%t<(>**oa$ zAMgIw(3|~i9j26G-kkg1Z%nR+wko~7XXa%MZ80OW&0GAUG}?~ty>iy4Z+|B`ZrR?A zZ~EB$w1eGh#EEmWFm9-SY5lbk-xJ0rIo&mS<4QAaX!Yuujz8ZW`2B8pWeQPKo6I?9 zyfZYkvFM)ldi4LZR$rpB@2hC%QKw{OhtS?T1wDIbsG{~UPAQs!&eUqthvEHKI?#2_ zjc2ChYJa|~VHnlBcCeWpz1%t9`yK2z&-}I~OZ(J;2L5Y5d*;H#)qP$&($VVhJnsn2 zPje$hODu$sxY9lTUB_3rJJH1vu4f!D4t_QtKX_aljBDHP)l9zTNW029b$*KP77K%O zX6SLAGS=u-llE6fx^ef#+i^FQRM~ISqHxT=E$$I%Z2ho9LlBpHBA+N)n z=^;Op%16uWX@|Pflit{$=h{W=KDSX#@BL*k%?tBnO^o zw{?0}s-y=l?)W-b+1HSfi+2_;S)`^Jj$YbRE>3jrn!U=D&6uyU+x*>YtCHSrC^b6atD&EjJD2sG zr^P4!|keDJT`?WAxc#pNyz_&(6p_v!GFu4TpYO%<{Ol+qF`0%8r`4t3^D{bg#u)U7(@cuF61I?Il4H?^+sU?DtR?WYX!k%Ai(Vzv4r6pd=tz z*4B{R^#F0a^WS;Ba+ z^QzSSVwZK9@5I`YJnxG}n~R2Abltw$JIih2uIe7{dn$N6J@(fI_H2DfkYUv3=*#^^ zZBG=`Uus)fAuaGcEo~R*b=EdJ!uz7f>4C57D+iMHj z|DtOb*x^Y*P_K?Ku-mKC>s{(fvxu@A3p@W=X|~A!eO)%~^4G)c-d+Fx?R4*M-@o#s zD9^Yl*lKQBKvaOxPQwI>UCX6G#vPla!Lsm)HDa@9pU4mkuW^e56vO1Y?l$9YE++Of z1uy~Q9-ge zxmkBRa}pEo`s{2>gzqz0!96Nl7TYH}ZdqJ>^0MH*{YRgPiyt(T?VI3dr^-qgx;Som zzY!(NmiHgE@78VE7*(T1V(%KKJBjhv;w;T3pBQgBXzHtjmV;-0{$QCT5;)%#XUqC3 z%yR8=6Nac<4=IK&==hf+W$^;#y_By}eOC=zaZqn%#u=xLSv%?Zy%EK8a`RI;^Rwn# z*X8yfxnuX){-gHXdT*V+?}DGr=-CJFO}6QECtt}MxyoGalRVAx)F=7ct=pf>^EmYK$wZ$MqM-%eSHgxa@Ozv$ zbYUm^edejTJ)uV)Ghp!oPQv71@xQiWKY$o1Ld$BI_ zdFhMwGyZz@VuMcTrnSj7?Z3TbuH!tqao*oGH5>o&ycoP`VOPVn&Ac+ztIb7yN50y! za`=u{Th~s$xM16cEbATHVKKH(=~nM?Zae(8?0CK7&wclI?A%+uI(gUrn0D^F58j{V zzUS!cW9~LCjTgJ`J^9@*y{y`#XZpUg_VdMdjB?Gc{g=Eu2OhZ6)o672^yiO`j=tDjhJj?O7o)onIt!uhS6Xg@wcH?UxvJ3elfXaOFoBSYlQjSN&Ad3ZDS(muJgjNC z+|hDjt>vcg=s4MErB}+Hx(tq^KMA=FcJJ# zTQJ@ym=GAkC35CEOa#YpCW3E9yXGYOS4ssraS4PWmUT(Slw?U$7C8Fc7ix6ZVItVv zz(rJGD#?z~2AAQU*+ktoQbh<=YW0E2%3@MI0(Ve*R9Xmi26;poMurDBn+S%vVV@w} zh>j)}I>x|Dx?l(y`ol!luyP35VkQZlAgK1l&*+;?1PAySQj;3aL~vMerdHo&X%ou*szb1mKq>J$z`ni!&`Ci&keY1&R(`FOF#!1ARhOo@PqnWhN_Tr-Tj?F^#?gd_p}2Bg{&(%Xf*O-jgg{MiJ&8(g^3 z*C4@Hk4#t{BBa+pe6j>#$8RY~J0W-5l#rA;Xe4kzJTijC?a+;cbcTD79U-^g1d|XO zLMDP&1^B`UE9r}TMj$>}A4XIoY>5@(jwSGkP%w~meP9gB6ND%c|5wKdVgx)6ew!DV zBjAPzcn-JO+6yUc$0vWl?*<5Y30oY%tHEpc6d^H$I}YFgSjB5aLXamcsgYMb3E9BHhCfY7av~(+QE!;gikR2^n~rA+O8`2?w2X zoFVCL0No*NG}1bDBe*n+as@;YJ!CineZ<3WiQa`G6R3(n#pD;UD@jJW5b)?U$`qzE zV6q7As|YgzMqejkfIdh+#a2o#oaPgVL0rJV67f$2LgEKp3>}QJ9YkLG_9ErM_GV{+4we{sDbYR zTu}c|4>^MZCIXKHzm33Y$oGK09kDBi1q=B70rOD7*(fMR80@BO$r#Y?1;cY0PQ)3y zj76GJh?9zhr0o_FDXmT+-J_gH5#kmh{5&7JL7F`&C?CXa^8j1CKtdKGYy=vGGidfF zGUT~EY*L}(eBj@QhTAdJiu{4JRnt94M}+09pDxmeHD^$xIITsA^m{wK9P}hU_;1t z1bAM&A4!0)*(k%>Gbj-LHz0f`U>nN5yDcG+a36>KC zBQf;U$CGp`=|tA9H6m{=@yIabf9t-0yaKN>2;zuA<}eyvn=L38W<4$Pil2=(UhYpu zc18a}{T6`V<{k{Os4?Y?i;+{{yA5=4Z5ZN(KA;3s>i`RKY=w&0#X=wGXeZHmKlf=* zMi`+TA|sg{qw#HlU(iiRZuAh4NJG@wYMAv2 zg1nHgJu<2L=0cW)67t1cMj#@2h>6b;I0bRuDC^r+&^a1xVm|tw>uAD^jwW4D22(Uv z24m)ukgggrMn@HodS;CgvB-%x{|g&tIbm zxJeZjsPGRznEW3;1UwTrJrzJ-oH;G=Y{C=45(Z`XtcfzL7za~AW5W*G#$qOiC$kRI zdX_MA3@zFuoi8q_6q?vcGC$SnsGi4q>qwL`I9upw?UP!U6r3y6SQjaho&@WK!YChY zVc;1s=bG4b_HNWh6^CXEyIT8b8#gh9ynq~u zDyHVVOk=ggM_WfPm^w$Um8T}vi;H-yb?{>EIX#vM=`KX+=n{9<8oxwT@|W}amHXVS z-V&g1!&+yiHEv;6@~o=!tb(=%V1Z?r;@PJ@g74FQNJ`l0O#yu0QKE-QH_k@pw$HGZ z=G{eUd{|n%i~OcXE+# z3J@}Sfw5a*NkBF)$I$9xRDBdbIA89YT9_Qo@4f)qsNYWYp{&w3RazRL=UHiFTF+8u zOONFqiPc5neX=9hT2H)Kk0{}WOr4vwM{KrmledpDq&Sx0ZMBx4&)5;bk2N-wYU`BU z-Qsp8931~)2eT_-|L|d{g(b{x;lXs@)TnxkJ;I|Ce}8gor*7|HRwolV?+VBkTII^z zhr=N;#^ayMRjc+(SZj}=w~PDb3XQEb<8Ifla!I|m*&M|Q$WAl%mZwHll7qZk)(N8; z-A?d8{P;X@W8+bdf_qu1B3R>%35HljPX%dWwFj)@HLu zp(-d_;?_=jzHG^`o-5iW56^RLcRIqGO}$-y@Au)twcV_r-b_o{woT}7)RbO-0JUN~ zYdEoveOYH?44LssCwddR&@pny#I$T-#2PG($dB2#6vy1yC zFS}n{wQ{GibxNx4AnjXZT<&-GzHXF$&mbe8)W%!nZkd&#{CrfgKB4zeo5I$k{_?ml zOuMz`Oi>B*0BQk4i~iZdF~3x|md5{)cx;l*-4mmV1Narj))ga{9$xVHMDeG;%nPf= zW}jk-r6^Gul`YINHdj2Fcur*Y+LG9*B@{N3=DvnV8*#)gSjwx*L zdU~EU3>#BdT=`Vk-dnD%D`tlAmrYG*Q-`K-$+%b2m0cZ!3N9OWX#cXdYC^VfgIG@N zj_F>;C0Q4Yp~uQ!#cew$O(lX!*^<&YvxLi?pw-<2M`-KneShQaGx8}MnB-R_F;2DI z{)lY(oo8iTRI%VV8i3IH>FpE81DMArzWFu&zM^m&&&t@}_mgo2&1f(-EEfUg;zENjjgQeqkn0q2C7h0n$xC`e=k>_9Hb&R{|V` zAvqTLaHIAwpzDP&kT!33?BU0(LY`xa<(39-5bg~@G-i+q?sfnqB@>V*w?xA0K4dBQ zfi>|$x>ta0;M*R4tQLt}`D3Xy7=8qkiGVl|Zv|EWuv#D&AlxV9F%0fDfB*oe)dfh; zZHLAKtU0-`#Q7cNRl$D*dcBGGGjMkWhRVoyD9{RSZfRKzD1}_Ffbp}_=4F=;+$n(R z;N_tFv25k`ksb)k18~cQkpOO)aThX1wkQLxsYiH_XD1y0YElA+*l2eBK-Lk zH20vJF!(pak6D>yfPM(@dhoDCUh#-`g}(#R&V_vM;64d=Brvz_b%IRGLE8xI1e^z+ z2N36ube-Yu39LpsBcv(d_yBxRz!AU>fI}P&FjNkkl34D--yXca0g~W8fjqb+s2IE# z0PhEO23-WO5Ih^<_D5oF%d`t_bI@~35pU4$1U?Gf3$*{h{Sa~7vJ|V7=B4&$=KDRcwPjJA+QO;+z@{nU;%$2 za5&;F18)ZmMVJmW!-1`lwl%_z0TuzCqw|;{j@!0+ps@J}qkUqGs6)EN zpuK|luAmd30byt&O99-{`6O@@;5^_H-~}KMbuts><)ID!0Y3$Nfgd{dpgmj^Zt3~)+Fy9UTX1F{!Vo=sE%6PN@G$ zz;+1hjDB4UIR+taI&^6X`M1NJjdCX-9y?KDj{GG6BgB;>Y*9OGm5@Fa?ofo^Lq2M_ z2LXZsgl;kLm0xV+FGM>}E;fqNI?tANvyz75>mqG&DpGDX_Q@TWo7T~Ib`SO2e9kp*0% zQ3$wH+;;UpJ_P*#xiW|NpIsb1tQQi+TA z1*+WTL(bdHRmKE3&hw}aQ!lL3pHmm^lIClcM#bbit)NMKzI#&4dC{uWm@4P~%?}{& zB0aPlrNw8oKdxNtQiiz&Z{Kg|zI#{wMegn6o^r?9KqKqsw~txR!uf5EH|`H?YyRn- zk!)g(H_vmtKwax;Chb$;b*?rmLVm%2W36|s&*|)TS80?UZy&2K``nB@P%XNh7S8GWh@>tm%R4p;NkXFA~R<0~Cs&L~`nXOD*lb^fD*f3@9P z|LewrceO#iyHwphP;Kb-<9>#jkWs&^>fPLg(|)m#Z8TXjPn5^ zr_F`NM!PGcSmTa@0Jc?t{F>S{Qd3|lk4w20q8PUMT6amtO_|`wb&cQ4s@u6g^fC=U zQENqOh||A<<|{;Vk={MN{`5|_4ItCiiq%j6PqC+=Fd~4SHjI=t6t(LeA~Ot} zol4`XIxh-#x)mE6H|$p2)TBwFY(L|wg1*wH`^@75C&lUG<7S2!$jWsGdnOE7aLc&g zFLhDN`yE_6$3l?SP?*zy)VIpM1ICYEcRljF3Kh(}){_l~);(;99jflY-3f6D z(5EaFhx8jZJz?^_P92hTR*PP2{Y&A$N$@jBP+p=o1^~lmv zi!&p49ejS@DXKy^AU))Q--Yz@dr@mf2R__-%MjN@2C&CpRSjU>o1Q-y`%W>Z&>}dN zNHVGp7FAkw6ScP;cjnPPp2=Cexx(=mWF@vC?(+S%6Wo2`nSkRR+FzJpPAvyoUbpkJ zn`9@8UN>n`Y=)in-C^6-jWAEQG@4>wb93F4UuMcLnbg}!AKN`ya85V&X+ zE1R#F7{2*dxxSO5l!;-ZC*HJ|eXVE`S^sh3h2@O57Ywe=SR)7=>>l_sI$-9oyP!Ci!DB9 zH;e>a%C(*RvSDtp?g)>sdcp*-QknE&n&aelj`^GF>ISg`inI&!UHWdhW~kko8sz1+ zr$hht9)~{7pWoJ0EiZ7d(f(Snr^8T(1zT^0S$a&no2gznEpz!McgL4Ueih`(qZku| zU7j@-)9VXmZ9g=I8Z7!6VAgw))wJMP{h~Dw->M5c3tTlayWM5K6b1)IZCFo za?EfY5%1!GRR?C06PU3J5Pk!z1U2v!tZuj|!5eTIj(p5SC2(UhCly%f372E+%^QJBciAo*!V(inrVP6*=`9rFQ@zIg+A1o87wq}T8l zAT8EVHx=Mdh>3L;9w7L!fN3TEMbmr=!tG#cjiZwO0mdSRWP$NqC`^d*Oh%%W zty47n5#|VHaYVdQaF!8!3amup3Q-YCMWw4zz_G@XyJe7UAS!A!m;f~|_l5w+paJ@U znHO?CZir3LFT^)~co?5JMnB(RzBq&FwjY z;U8t@bczj&`T{=tL46ZJ7Rbj2w4N%7KUQlj6#W9x9!POVm6HJlq<~3xP;wi@CKT^1 z!u;SK&U4MvG$7-@kvy4*D+I^*;wCBh5?`i92kC~x$t|toLC_Ik4mY>0-j48{X5mr9 zKqYA$fQX@Jv0uTGTYJ4i7a0R>Oot?>U$PAGS0If8!v2Pzv#RzHihBun5ybfe=?suA z2-+?JHbsGkA&y(OEmoxvBXRons}SauGuD7myf^4OdZXbWejwlww?+kh2f$b3 z(9&jjW&^mbpA}f8!+i-$>~z$aJN!rBUk|Y@;jUV6SF;ohK#J{Dnp~TYz%OW?*WF2o zP8ow9coSOanOviUK>1LDHA(xbX@ZI-Ac-MAylmn{q`v?nKgcx!`Eaj!#K1iYvbbr) zW%37D6Zc|Vbs7+o0mxv3LH<|rPe4^Vc;-TJd->Q>WjEuRA(ICl-w9# zD=-qK#cHY%QUwmT<@ptw1EAzifj(KeZcpWIMR3O}*C7Fg3f7|V_$bMJ#hydSHGK`T zsw0l0Uy?Q|jcQ^P66Xl(^R7y9Y2n%;tcp|v@1b{nD8LzUHLX+RbX%T`o)~>ZFxyVR>=J*6m zs-dxVApR9{)-!48a&CXNnV;5}XA7}jL6nn-Ee9pHd6@t|w^djVqC`l2UQ?<4vDLfJ zT#$PDppY}5uS#d^sY=Qz@>m8*xb0>+aFaBxNqGt$ZUS>=j(C9cZx~3qt?QGjl@u}i zz@Y+Vuy^Ek@Zu)H+*YMN0*QfGE(#S9_LF8gBr!&vwPx~zC$3eaaYFE=U>*(8f{=F; zxI72Zc=HQ2#IvQ$)Tgh^N0X^2WttKr2V{JW(g!l763>26%XCEELVkj9 zaYg?UgFAUIb^RJZH6@^*3|TLbwDT*uIV%vg5QH2yfnh(4QKO-S7jSPu*6qOMBSYo{ zN2$S53F<$QNiyW>f=T=V&V9sb%Bl)MyrA?qpAqPS-09vsne@1U5keR3|xU?Ti;?IyPuM5XhZ_ z>_RiI(2GQv%uL#gJabhThA?qAAZmR;9TB@0r2GZjw(MCI!I3QwP;v(=-Ozf}@TyHM3PdI8 zK6<#h!_ZJ9m+)|lVzNo5i0jiI`QdAoH`+jJ$oH12*dK{Mfp`bJuTigaS|^eqYpJ1p zF9K6VuhKooqvcs5cRQ4ej@A)gRhTWDi@@1EKtqISl_q&&u)_dnk!aZ9At++RbplhS zG*J_Z@=ZsbwDwN>D$M{x+#^r}c5o+WDhna~8w9;bK4OcIX^_dU%E!1o zr85FoLF(BEF>*sI$2{TbiX{r;Dl(B9X=G@-Cy`=;#6lo0Df8scU@8$-1>uxcwrCin zGeb=4#Da8jT8f~-=t2cCG!cjd#>DiYxMZcMpOA#uN-H4BQT->WiaYHn4GxG>zC#VY zL+VYc^pcxI9zH`p46HY^;v6Y%A`l0Yn_@W<#bXL86Kg~$<9C3OQQCGAVDd>k5gkJc zxy~R_Au8+`%Akik6mFbhY`JUFWaP65Ex-@WQRR%8g5+;knu5hHaF;iTJdwAhHCi(8 z7T;HSO77G~47ERQ_!Ll}M5@nVf7;FUuBI3A;?BRK1f`885^>6Ma2bHe9tiV-E*68> z8W72Iou~|e0%0|eybG9N(kN1b`&>i~lDVb_Z$!Fzs4(suk{bf=w-VnCegY=kf!r3P zDTHV}4K2b9r5DlbTuol$Q6tx)h76Nfk>@zXLmwm)v~ec#X8G5G{b&f+T_Bdrxr;BW zO!Lpve2`g!Iu0tyL5c->PdReNmmkO9MDmM}udUD`*ih9dI7}>3B(~?FvIKxhf`qBl zYz3P*s3D87kch||Re7=x*9&^1*-6P3ZNLmV(iek0=((GM9l)*5WTluQMQ>zcs79N{ zc=*V?lt}NR(e+VnXENpBiKm>{43kA7fo&U$uM)u|UO3g?6!xkG|K#bQzHK}2?hSoa~~HDDj`Kg)*8 z1qRa6+N3o2?g7?8DObSJ!UZFM59Ws7g9T=-!hNKBAmT)mCXpO`yNJmaDs4c>29vu+ z9!M4nH|7B{vq2$%fVCo%3ZvxI0J&TN9zg<&MnicG$mUyE#2N+^N_#@6coT(~+dL$b zk{Wq60{mSsc&NgpMsWVRph@uD&_W}U=;14om^?KpX(Uheh1NP_Vwn7iTWghopSPhn zo!~YpibhN-#hRuGx`g$n!B; zJ+4oZdSuJjVnxS$RZfPO)U@K3Fx=^MI_i}B@|W5c!#xzoed*aCBg1wH30q0f0YXF@(oeE+^x%-tZLz(B7Lr54Zpq0WkeGe@;3M2}9sk0-~9mriBawP*KfO z=TzXo(0nj{G;fhnUE~g61t14>+=Mvo|9m1Rd$p9_D3&1TYx!or>7utiy z71$8GJ%J+u!GKkOE#Q*@a0bm4_$j~@{>8wL0fB%B05|UOA@?oR%UJjy0JzQO2;d~Z zG{mO>p9Ay)>;{Moek^ZQaC6_0b^`kXbIY#@sBZ4QK{%He{0k610P#8i_dR+P@LIq+ z7P>>8o#4I?;MyqQm;m&t$5bN=H4{R0tq*_S)dX?cHz zWf_(c;w1%b7WvtF3M?2i&?6TC-dAM>JcuO0lPHAFsW1fk$*i$^WEH(ewYPA9otKp-2$u)%VH8D6$vEkfAt z0(Z8nToP)=hDpMiF37J3+cQEE$rs^`lU}{S*`1B*9L$Wgf(Mhog}Qgz>Sr} z30O$gmu2JSa#kSViBP;B(g^G%f&`@P+)u*xVf#x20!Cma8DJnwRE^FP$lheJQeMIeyKC2d$M zfi3s?3(6w!WWBlz*b#2r<17ebLQ!?8Y0!YJ1nOr;B2?xE)prriHe*Mnj|P)5$QdDh z$4azvkg#|e#Z1P^Gf+aoxbaRb9(s{VIMw5+lL@`qiLAsIDHw@l5?7Ucwl~xv(N5;# z!A&xSac8`^mVp|{lzD+Z#E4{I|$mdW^ywbBb(07=*gQYn|cVj13o?h9FFitQp+P{jatXHUTq>ZM9wXF~H9sf;k})We~7lW~^;Me8M`y zsUMjNib`VyJ0wncu#shUGG>fxgu$Q=k{F2<;_&t<+9>PE?n?eU#Q?0^v%A?nVAWF~ zvDhnPywIj(Y$(${0!^n(##+hDEP~Pbp$fsi{mj%P^#OsI6RMkKe4X0+ffW&yV{~es zXUojYkC{c7|0dw(*}LLKnt*V7%#ALX8-U1O05>gS*dq6We@vMxFhq5MKO2DQp!qJr zMPN4opHVa|5n!0YSV#ug|CkGVQ7i`G?+Iu=DFf!_PmHt8a~;NaQinR z0TbhA^MU|T%@+u`kDVAhn^)4@gme|aO%UFI4v6DQ#eD?F7~MR7f5NPi2lpVvi2zs( zlMwLb=50I7DBS$c?V`ECnEP;@2?!p_E;AAJ17X>T> zbVFp?#mYc45$4L@Q3bcu* zka;`8XG1BofQ=z@Hh64-n>%-80C8}03kqb_d?9fW+>YRF0R;=d?+tp@Qp9Znv_(Ph zApQyBxlXYP?mWm93GYJW^#x@ag8Jt!2u?xRN6-X=m9qcUH$}Zqs@U#K^0-8eTk^5XU z817+!YVhBR3>)F*POZ|>_|JiMB51gSyjxsZ;O_%JccH`x?py_Qjsal<(pVt=AnNBZ z-2dx+e69igXR-AkAL#$L`}jINUu3FHNYVxH4O&SQI!|R*j#%y%R+d!H%avIBWq2kP zXB+SxXqYEa<>bjUJyv>V@InklZhga&_5}nQS(^5!(2<}ly+R^^A<3#riM4O)-6P3_ z$Jln%QqQDHU5>GEqM}fhY>;DNnyDzPJ3TkYfkr3_m8!f#Rq%L8VN}Xo89%g8bFYeu z^PD;=Dm;~{bA&Hksd$-0vh>bQYyI`6A@dliaI3AjL&3*O7+B$1xJe-4o1QQ7(($qchQgI$ zo)fzBtwsFnG^u#_Wy0rPfJo9^HsX&qe43$dSRgPH*4HqqfGnnCN55JxrM{OP-&A>C zrwqzs_-zL%boJFbJHGUf`g<^am+L=G`I}c%R;!%W+Q25Sq)KYXS7s?Z>*rR(y0O5D zFb!vwVj`(f#-1-^_;V!+PbITB-!k7%;rVOm;+&9zL5f0@OW$2+dqK?T1I5xs$`J3Q zB)+vUKp94o>2(di$jz$EN12@?6SlFcEYd6$;1g9kkKyGAdad)f@>ISw+a5KoR^r*X zF=u;p+puL>gb6edsRliKCEb|K^pPvWG8=*+{N`R(dHRbwfzW%2!qZcEYrd&aQW53E z@bYYhefN1oc&TW&9+73#pW>qWN@P&#F-i7=e0bi+6kmUL~`hnA=in=qp__kIjXE95q`1L2MP$wOp zv{G*=%?r>G$1tyY6gF&@U2?*9o`BwNqB<6w)jS>N`0boFxfM3j?Ggkx-&Il6zUl@b5`dmwJX( zFEo)$6nAe|Rcb{KH7j2auRlXXk5gtWt*avLRzgD^G2rDeq6RdV_SN_vW9q3VUJKXi zEln?8&=F>iKHao7T%jyk$cTiRFkSVVkUge+&DwTlOtlgJrE+th_DOd00!$w&k}CJC z>nt{X9PXJ!vs&}pDyXL?`i8hMP~l02RQd`#OB8u8&gpVA(oPeJs*2>uW<4F3p<${k zWKAhFkJ-4si{VFQ{Uw)xEP=Rv(+Qn)s6#igaEQV)!=NT_)AP1w%cy>PEwv*#@o?uB!gNSxk^Z@Qj?_vj zQQ(6-4HI=7lvk9Lw3)xeDbmn8!?Y%ZuT@FBNi9Cyxpv&{Qx+4LukcQ=CX7B_7|=S1 zz9hUXW`#2S#EiGRtqgyR#s`%l$TRi|P|(yQodkz;VTB!+^3X_W9e4cNybP3@%Oh~= zg5grcecNeX?P0+Djc4A(`>!7`agqNSF#qF2@FAx0AjV;Cd&=;?n=h}dU_uBbDJh$RY&ipBy~VvNqv!4gC?*Z~{H z60il0Wx$3VYt&f4*kUxn5~GPR_qPwsnbiP) zcf5Ovjn@nBN>Wz{7A9HzoZ8+`+u$yS(g0AhvG*k&${NTZh)RLX z8ockxBEUMh$>!MeKoipMh;Y2th0X57uAPTC*I>l=hwN?mMNn`Jv^PNPk7nrI1^fwj z1j1lW2)591P$VJP;W_62ZL9K z@E3@`2z(Ee4=Sk#(0>7RGAOEyS_wH~S5+Vm%n`vxe+f#ql0>2$m2g)>&kay1(tsMl z{)JN*H;~F64!0Q88*~Uz1Pp-xG2n$v!33gqz&#Xt2Ei>tS}Q@P0A!hIDQF798=)NL zvM{zt0qqBy=N|YOaGwGK0VDhy9Po@mZ=kKDqpq5vcN+4Gq6%|^Qs_ssq4JRS1jzM5 zS;xa)hj@2D4*)kI9}QZK@NGak+#5m1fYu{VUEoeby!ntD0ymj>{Ri>?hWks%OoD#| zDliM~Sn#$%mTcCKhkGQ@4E{`nBRbU$^cUzXK^$V=ksr(v@VY`DOjpVoWgz{*c*tnr zCyP~c5RnHZv+AFLHxkG|ImtLFPrvU?HsTArzkdL&f$$6!jC2Srf&ebj5)9)~gsBlW z6!aso1LzKaD?nx~BjIlaP|swqgD^RZ^%h}}7>|TM;3-!jY!X0LjtW3mBjE(N$ti(_ zkR1Se0U!&o3<~rZg~>xcc0$$!e2GGlfoxZ}86S1AsL6$;O%CKoMH(8Z>&c>hc$K#E>|k?;#U} zG{^v`9q0t`{gB`Hpj}b!$M}`BgS!}5j<^$0hQV-aklqrwiGlwQ+zXNJ4G8)n47NQr z5&js2t%jQnHr|5v1P-DB{0@H&>gpNN?*pA=hxR(8^)MM(y})9Gmm@3)VTtgQ zQyadBdlGIhgq=s3<{&;9l#WK2814X24s-)#%77KXEBG-+5l)nJMV>=Z&P>pH@R~sX zfUa+lpB;$X2f9jFbjGNwBDirMhOn@ZgFIY<{6*xCOgJ#m=?MAH;ogmQbQH7!yk3x* zhB)7W9szFy5Cr|#LFa-egF6&7AL(`g4F~QKKgxLz@t=bBfd6yU(?qm!8Pe6mzXkD6 z!My@$o`Rcf@97WZBCHDj=g^l7nuj=(ke>*o^8&nTw*wZVCul)DN4T$n zPbO&|0Ur==Ec~emt4ACT{x0~M=we-6|iVPrMr zJn}FKVdO->1w7Yaq}Lr~cn4lTpgqzcy{a0rli_^ohRz(aWMCTtek0s{k^fx8Bd1!< z!+!}h9Uv18WO;cn!s3AYh(8i^J7gGy?L^owKzHy8pvwRpflMR9+`%K8rCvc+3W&g) zio7m^dn(c+CxvFieHHR#A)1`bG(bKJy!AjP>SQhC$%5f!$ozotE2yg(kogMye-Qr} z_~g_L*>mBD{`@p5mcw&+fcn!R><#$%U?G(OnuI=p><2X=-eZJiLSG2t{ta0&xGzL{ zG^m*HkoOxv6<$2v$hQOd!=U3j;w1yA2s;jcKj`ZKB;#3=twwUxdnd>*hWwXEXB|)i zxiZMF0?k31x8W{;+5D2Z3eF+zp!5IeBuLtS+^6YRmeOEDRg`4gD*un~)9fFqj-rQ_=%Q3f zqb*S`Bd69!xsF*tN4t$H(d2V!W@A1%1QIQpva>$gW4feO=9$^ZS@C%yQ-RmKR&#;q zi>I}xWeeW4oc1{!iLQBoQ%040+DX!N%<5ZS7?u>tVT5wUo z+Q1s-|Gs0>w&RxanYKaOs~;4IcGT4m=rq3Wm2KzR#$dZH`){^pclo}#bRc!;d4pZR z5o5EQI{HBruW7K4h}WJf$*>PT6S&ttb-+|b*{O3QTtoEp}x0SxNY-Ii(}tEvQjSfefMzuvVMQJ zUj5qRC?|U~xxxUI_Z|tQmpY5Zg-6to~ zG`V-v^Q-FGf*5ZVyEx#LS(%{r*&m{a`%^g0ky?5sP}gVE6~9ik*RD9l)V(PU(45S* z#Alw5yz1HgR_@6`{hP~H4DS8%+R*rZ7G1qoxRuk-J}S`^?Ukpr>E$QQbs87AU+Ep+ zU1}a`Gwr1^(G=HRHSAbo-cnK0XLH0!BPQoHCiV9`j!Qbbyi_Ik&GWyJoVId;OSc{C z@{&eQ*>&=Noz(Da+}}7l^Rj>RXLIjH)%#~X+VbO=MN3<+yDDnU?BcQ6A6~jjBk9M{ zQj1NPTOXE7N*?*zZLZt6krztK$1T>n(CwDK$h;c9tjKg?{7hU4FnD=f*y?tDj7hgf zuKFy0#KbkzZpbIC|KhECdZlT+g0Fh7z3s7iWx&d~t?M5%Q=S%o<_Qq|8-T$=S zj;%Qv;K4;LL&&+i4zR>f}bsl4mP+m5d<9c|_xjtf^*W86vihl0x^?SVL-Tk6qsmFbb z>xL{FmA1XB>Rs(1s>f}0g!JXMSWbu#Lt*X#(NxEZE%Szl3 z>ere*t~h9S4|u zPogRJ%_Zv{;vTk-Y8MwB7IUg#bMG~N+x>E$$iMpH^BE({Vzn&a(Qq zbwyi)RhzdzUZcO8CSJR^kf!>5zJGiETDsch$0;)!MntZgc`Zl@5-c-69uk2OF>P^;n5!GK6_IlQ1^Qv}~$JPzSQ@;K7YZUw0pVyT&IBJ+3fiQ^Bde<>FP_=kXC;0r(l zECR80Z9o-T?Li>wzd> z91sH#gOt1wKL<*H5x@?>1DFOR0(h?qs|ewsc)trPcm;05LZD0%Q<` z_pWfO*8tD}Kn=jY7GBixpj`oC2#y7Y1JOV|;t}JBJON^GcY-q$Ca* z)BxT9F;4Zs7@!(>3j7M$A3$dUvw^Abr-OC_bbuGI02l-uK|04l7XhJ=I|xdQsLsd_ z5C0(G9QI!%?FrsO&^X{9gcZUc3ios1OQ02q08GGYU>0Ql03`zpBPcQSuYi&R6l4HD9{wiy z$rhyfpxsfPa?pW*6|jJx2Ko*t2JQiR#K{9437iGC0vhnNpb5Zta4$hTGC(4Ox&6Q# z@Gk;`!2cFh4&Ha5BwXjwv%T>xJHdUwodKwl&yyr{F0A)w7 zt;P`=+OSe$x6`j~rcSiV*`_S=OsQ_5C}>n&eEH>*=Ug>5Wo1u|RT1S9yX<(Y&qQ4M znpWL8aQxO2?u-{-5x1#XUo7>%HoLXv)cIVAp5JFQZkBj3(-=w5pYwI{t}_N?St2$? zc?M4$(7C$Fu&l_@%iP%*EH}t|NnLc+S5FNt>h0{(T&a&*CU^1*;v0SSLkjwOnHM~5 z-4wsL!-BsKw_bfvFX^AofB1!>jW$j;ET4Hhi9HlndM!BYUo>E_JUny6%`-(}dHx((UUVTPV9ZPX5>h9QQt>Y7H2834W zzI`al-lF-&);8;c zhV@R@B`@D}Jc#k?RWp*VP)Vd-ej1VL#Pv?eOn{_F^^jQ;y+^WcyXIHASg|kNuXX4S zu_S)c06xCLG*PxWiM?VSka999+vfX;t*LLUwvuG8!SSst0vJ_0yNvy{r2}2nOrG)i zgYH;|l6Oh+eER6~`fkihejVj9U`ejC&C^8I`siw|qB0SP>i9~RRlP!grRrTplP(3$F-KQMgi3pdzFGb@C{f<^YJyQbv!dN5 z#f{zi@}^&H57_uO>}!msUAFR}0a;J^`b3f1Zr`-Ut9X5ps#{~Ap0~)p@8I8S_Uohv zKjnH(%bslxqes^{8Ald=E-H?0=P)5)wlR1a+jF8b-`KH7YQDSVvEfW6_sn`w;&r}r zIz27hJ$g!eKPua?p-92HBy&xc{AwF~6{A9JGtAvTftTczbY0KRu{o3*JgfPvq+8sL zM=1q)>sQb9R@8lYrRA=KF`0F`67!{8MeE0@ts3=)!$T)jT&~OgT*l5m!Kc`~N;MQX z+W5t{mIT?a{eq#?$FJ897LByQI+E71p~OZ%GPyd&*CrQ>!c6VF2@NYHacQ0F3ceHP zE(m?IGTA(%KF7wu#OnCGrlSKV8ToQP%~Cn=!YnG*M|*|xo;ti8?{xcPXQW0%dHHMPGs=LXyD z%A!t|n9A~aw98dn!^lO=sN|g34N?!P02us)g=YczY0qLwxDtV9qVI8)yn+G${Mj+K6R|0 zd|>aDya^^VGh}H^vWQhXD~BZ&WV0rzTCL%@Om|ML9m-iO>TphO;@q@Z!xbSMrxmL> zF5EJ-lAFM3Yct)rz*=>t$GjX)tJPX^I7OZ-=f-i)99Ns_!6j&GhiSie*3zofOtoBP z@^I_Uv5OH#XR0;$S>(9YX3k>2w{UcAAvaGe&e3v#u3U%xst_%g%CVfQ+QUtu)z-O% zuv*tz&e<2q7&$mNwX2WTWU0;Mv~F2yXSqwQ)}+c*XS(HEw4L^FZqEDR5f?bmOLf+U zaeLj^y(X=z!m?N696~G1wJy#o&Mn-Z>*1_b1#t@VBL7TNEyt-jj)iKjrq<%7aCI@M zJ%)2xChmI=lPa7W<*L>ChjTKu%C*+w?4~Y6Dfi}ZVHP)MXE)?EQ(o)3$HXz2vXH_r zSe=p5-PzQ%A z*jXr>g;VFaqL!UadpQM{@8+u3s47=j@!Rg0#BQ7tg9- zxHC6in}I0d9zL0=G%7Vy(ZeUtO@+tioDBuqOohqKg6#M@vo6l2oN#9@m~(blq;eh} zT4!ekmy^kozsK~GXJwL}d| z1$<)R-GX@^0J$%KsiC1%cif;urh}ITi>YM}25MG>onT$7u$$eLcA^EdoR~S|5WxX( z1c*&S#v}I>V&M!r`6)5DW(awt6tESSBJ&XhjV~LK!ioSH(jQ=*X=yD*xYJ!c9jgqhOM{tJ=m+qz6IWP&?PPr#?seGoUB- zZ(0~?M8Ulty2ubE5!j1-{mD8|6EH#Tr`|`3)ej;?ScsgiZh9jkYXRPsQpyJkCn4}G z?9DEpqnx*Jp|2Cxj1Z0_&<@(hfOp`22pk1}1n3RuCuaRrfUMO-f*yqIi^-^OEIchn z*+!#Yp7d`sFKwahHU^&QC{xdQh<_Xx8e;+G1@z5IX*0F^{|Oz?`vkl$&N52;Lm#2H z?Ds3@`$8_`RumSq|K&~s$595P5&|O*KPJN%+He5Z52Gwj3QH4d$)M~`rpK31*Iej6!6>&xZ z?_qBTAc1`RDz>jd*~U9idr((o9@Yopjb}Mw*cSp`M@KRB!X0C9H0s2wVrn}Q?f@Bc zvORSaKNK3jM)zr9!X`eq-55$fwG)QV(U5t!2+|QB9Mp!EH^%Lmg<+Lya{cJ4SDau0T!Ed6ykzog_T-cx**{f|R z(+^=u;B5rDqAtIm>_XMzN4^oqOO~LlGK-Xo`MYgCT#7oJ3VAdcss)kgGc<0WilV9z zcMt0Q7V04Y?Mn&&kCko1^RM6@q{VOralVX~Q#|~y+oP?D!YB!NM|xsdjC9Emc09tu zpojEp3Xq9NtDQnbHC4h5UJH0{@w+8!IG&|#b0opY(<$&1z#E3RPVkfUpIe9<8mgoo z;aM0Er^}H}Xv1=9$NL0oJR1KU$V(s>HBwED|09S>KzkU4d^jT=SFGG4Th!lZjAWf~ zBiiq1H!OO8DH4Wz4E$5!55M1uIx`T@3D5a7^m&YZHHerxq;{)`Q2k$rwQyYsB zmWTQ!m#5D~8+xtAFf|#vvM}U4C#Oy!O(iOS2P!Yet{v6wEF%nsEycJj9-W*DZJ^1} zHq8+aUEw_H7w!JHcPgqDdgo4RTO&214sQ9N-@|V_a*%?W8Y`k!j7DFJGP8bdL(eF< zGf_8WIssXv65olbW2mo9zAn_tTkg~p!k}Q!h%r1g1*FvOm$dih})uKa?AI1Z6lhL1y$FLrGCsR4;18K_S;!9Pd z0elOYV!-|>euEw=N``i^4fX4bJd8luR=vVnp3X*?mU&esrK;EXPyuM4XadxaJ|apA z*?mgrLB07vckL)Cb!#Zv5f;<`>u{b_mK!RMyh;KkpL}5a55svGi{ZSL%8@y?*J;># zi$v_~Y1A0&EqQis!Ra@xl{p1YykjogVm4!QVb~HX#hfda`+J6GG+R%|A+(YfLCS22OJ>wi`+8m#mVIH9BG~6@gOw|NCS9#z2{nTrU$Zuy20)^OLW|I!94Yl*>|~_ju!m zZK_sTL;?H9&5YyqGP+3FCAg;Eg6pR}``%8WN^@dM1A1oESW0sStU_&MoH5h!vf!Q> z6=&)L#2(?Crs<4j+mH%PuA+N!Sx&-M&vm!WXZ1nyZx_DN)D*82%Xfu^XGArxq(wEJ zZa3L;7V!v2dln@<)p_LpsdpPzp0n)!?C|_)8A!C7{Fu3CMhai9ksmKqh0L`d5j^2s zIhX$UyhSYc*q~n=aKVz};JDSa<3RoG{SG%h)2=>F`AH^s^bBozT;UNkd{xr!vw!ggp2Y zH(j>G$Q|t$%%*}Ls+aqEm302aTCZNwe{ehAd}S3aUz+gk=ren^3>3>8BeN!_h|iY? zPr4G?oMIRx5A!NKR1~s}Uf6G17=5^xz9MaLldV23_)sO$Pfx#Q;PRDA9Jji zhPt6ou5}DsGN;+RGiS8)+;q*a*7{rR)1BO7;b^zt(Q|4>%?;|O^^UiDW&GN_i>}Lb z2+!dEw2nUHfnB$#&Ce3&dfhp>cKGjO+s9N*a2XP`?>>K^e~S&&D~f}YF8@^WwY#^<`dmJ5yz;nk1K zvz{FGw$J)_r@lVlp~4}Y>2lkgbJ?t3KDVZF-!E5X?JMRsTXj?9y~3))nyvNE#5))5 zgTo^J(J}FG{y(YWr8gbZdYAuWIUttrw{ffa%46PdBhx*f&aGKH@Ar{Me`GUs55LcG zu;w_k{T85BPb{9H`K>v8rud9QxbbL4&yx<0xR4Lw=W#)j?F~!4}ZJowV(&p@32^WaAr{taB^Ng^eX!| zbz#H`2M@pXJyNiEF8}5Fck^25mGoQ3+duSgy+?m|_iFX|ZDa3${7U}LE41A>{$IH~ z_)YJO8hjnk!7*&zYtp%sagy0XRqPS3YL<}^z188(F}8@(@uURczv~$QP_J;oK75vVvI#tCzZgSD<@(o0;AT{N-xAxC?7!rNIMehW{KQAq&FLF9?-?4{|dH!Xz)i zcSMjz9Kv9&3$yNy2k9+!J7$qNL!YCGsG)M*QNbHAg7p^`Inxr4t8Xu-3(O~Qb+_%&@j zfi{9AwyE&T;xME_evw7$L@rIe2xwc$n48o#WWIz(duSBu1TrU(A2_Mb!ELKE^P%@F z^utT>Fgbrl*+f7Po{TsF4@v0eFVs{SDqS=!l2A5pF&37qA#W6$q;^T@f$` zd62>9bME?bPD(@MC>m2(St4BwFnU&xT@5waRK z6!~5VItV(**3vm>i;)QL^%}o>{1#WDAzbxB{Uf|R{yaiDQ7D5Q;*d+v!@+OtfxITP zO;gk(+!uOUkiSDH%dfp4;Dj>S;pnEbp8nWeV6=XU>=NafSks$m?G4`+{#oy5vk4xe9B60ey%w!r;yZPC@tI zL8xIY0p8Kcc5&}XsdHB$ndQi z)H^ze&S%g+q1*?Mjsx^`h3pf^knLY&OD);b_X|*tJl;VaRDpIwI(NY%CirW_3qyK0 zp??hWJ}M6Nh4|zuz_Z{_NBBbA?z;_P>)HPrJlq)F!19(KkvX@|#vc>mShCmq!%bN`bMI{ycApPYBIR#}v*#Uo9hTot%9&1ljayU0 zNjpZKqN`>jPAw6KwwFNIDrZ#v*lN1|l!K>w=2IT#zQn6n`((zX`8fL zXDyXxuj(?IpKWQD8gjdNTXWCsp+pib8??YJBEUu>^_#jNnH7n0gC{a2g&DF71))=T zHd)*f!GulY6Ej}ZhCCUB-B4gF4SHyHj&aQG$v#E7XoFX8?>l$uSHxVBhkCz_ ze8-9!>8LDi(m0a=( z#^4+Cb+}GZfvb?>R`7xESX$)ItTaT{JbbK>FzNkt)<|odR5YGXd{<&4k_=+QxMoRx zbcZ1ub$N-ub#DvL?j=N&Lu{SDRl%te(1v-KRHG zsUGd7hwYg?)Tqww!KjZ$6;kx*@J#Ono!d8go)YE}U*3DTnmIJvmaiTqub1^^ym`;` zC%<_e&Qd+xq6_I}cVxcp^AW5DC+!(>uL1#Og#} zhHfb6q1LJVN~C3aCRJG;9xh95uvIw*8tYoc$MYQr^+}}av$YJXW(or{$4QHK@`2T@ zE#h1!Re$zf%H{RD7rTWlY^r-HJ}p&+&rWQ%{w)7Y%`cFA!KXz( zlp@;T;>hv~%*Ly^gOb?k2CI#Fl5~CVL1+rEbwfsa2PM91c5b-D=&({1G&{X76S=sZ zs+G>}N~$H#Jljda#I5W);r6v(hF071kt^q;9e>U86+J`#u)nV5loecSWsqdY@Y;!e zzwM418%1Znu+{6O47*$RPExF5H8$_cWf6tCSoagZ%$3endSp+g!W8#k#v_2#1Vi zxX!pY#IT1ovyt6$oxXgpc>3#~sMS6n7gF}>ylh*GG{WuqvWz26Y(gS_@WWbcz4_SC zofVXXk@KF>>)f&*oLsWQP&1-?eC{cC)<>7|p{}8QBdZLzP_$@GW2riR>(rgWxwh#| z$w%#xq4TTN>5jGUBMP0ol^MH@slgIvecwg-tdBw3#2Oa&)3g))a%Jn+>!R29ifhk& ztIoACrOsg(zvKwBX6yc6o!EYxvtWw|=6+!pRcV)aRh1nv_fNRIiLfg+!8}8^$-_)R z&nnEmp+~0P;Ll%U+cvQzp^I(7tMEPe84{83ot38nFw=nk;H3jYrox9FwO1TW_EhF$EzE9zC${ZBq99U4-k`{m^#aVdx+l`l&ly)R5;GxqnsA*EBgr< zUdLl53IW#;hPRaP%Fe>;#Rji~8;E<>3$IP^$*Thsxq=z}1YtDt@)i7-3~fUbOe_k+ z30IWy9P}+jdQ;(c10Qb{VKd7PUE6DPO3ya4ar+U(hh1v-Im{HlwoO}6!`e)lr$k>T zWF7sFqo!x!KBKCVpt=BiARP&UGb2yFd$rl>xVdA{%xDXra`7V z{Iftg)KMhp1>hXgv4t7(c?al4x<_MB|9F;UM?IO{HR~}82}*7V-3*$IINnHS8Dz-` z3TOBa1I>Pr1AhzLsatLxf)k?^n>i zpknCHMmr0H+XUchL8@XahOEe&Eh5+|38_>A=K>h~mxd+lP1Ea2r zsK?NK4HZvryC!BXxiK2qrM^SnoFU_Z@SCu;i3xoJ;kWVNP(@S*Dq|W^;*kv0RFBbv6&S{uQ?4Y@Y~Xd|-$*v=>(b=e!kXXN_| z@-h?hyYO%pBaPpJVICVW+yrk7kC>a7A)t1lZ6reP1IR?9%R7g55Z0+}ilG>Cv%%|#aHtnfe34ChgW&EBJO;?> znm_7aFBAL)Kpa4ZU0c9&L*G#n)HZx3Q!JAZ{}A}y;9dnCJaxS^xT8&C_JN~@E;=SK<+r?egXXf;fs;}0Lb5henQRq=_F{fB37wuR}WIy5l=L+g9YrNg)}^Hh72NJqh{e zpl5-pX#2C!Aa)~c+;9x@z{4gX>J{=c74B*M+osUA!o3Ok+6DRu;g!hC7jTm!(_P^H z9n=ox%tt&Lc~65s5#`B8ULGQC^6i;o)cIV{wTL$XI>_mx{WVyj!n5oQ9jg##M%X3f zg+`+$SJf;<178ZB8tyBgR@8Ci4gl>o6VHzfSIKEUWF40gBORoj3Yr3b3}i=uZ$=){ zAuC5dP+aOy9_IE|Q}8b!{Q&4YysT~2c0AI(j4+HYsRf{4!|#H64uf1OeoH&?o7x8bVLj3IKsTc; zv`2g&q}u`dG)U|)(tHq)Su~{o7<#@0zpf+nqe3oDLY+WfhQ`qgatR14f_^Nz3Dc-A z;r2qDZx9xbwsISJeGQo#TOp6Idw3o>$kQ5kv>~L~)fagkjD8g|4D^l%&Df72F5J(M zp`OT3GUQ{xABX%FfX+h&$D!Zf0)8g+kB00I;Fo~-o;l{W zq^{!GEhk-5aDY0ueh-xaDn-Co?P z)p;-cP%q{!_Ix8RW)lk41$=3t&tlD$Lf@}-4KaSD@rF46Rmu#TfYs@HY}yWziF19< z{;w|w*_RXt?Wnm@+-bz&U@MC+2c7G@@7lO?UFsfIo$Fd^Zynf8I7243NAYox>^vn_ zMigpK+neKq57}3cj|Tm0?{rD$e1W_nT=UR($8O!a*aRdK}*iLfjtB zxxN?MJ{2UkHxKRweY(JBJC9#R|x}3zV!ri-@ zhYop_F zEf6LN6Z%d@#q_yMf9qK6vZEYH&b#Q zG*nWla-v(rB+vZham8IuC65;iU;lC7Z>5#F=a?px-wd`=jrJ+GCZLXQQLDWwZ%te` zC(Jx)BS+t+K7IWsVDr}7Q^YklZd1FD$WBr?QuY%iJ|Df-NqlYMPt^Bcm`6<)M{XHK z|M2q0+8M`a*E`c195ndmPtmwLnT`J2?#w*jy@!>$*w>YwEspGPclNaj%gU+7oQYd`8Ss>aQ24$1W1vH{V|*rkESJ-ZZe;j7r7Cn}hW@ zHB}k7(js>>r)1j}AK-HwWKWxO#5%VYN-;RSff5_Tb$P;RvLDH5GOx42<^u0*w+EEZ zvT(G4l5ky-`26XTq7JgW2UN#z>wFe>IrPqF$^4Ub`Ab5sByUaTRim0S5e8!quUpyl@4&Mc}T^F{et6Tj_jlGgu!tW zRwj+HB)wr?L>RBia;8P+5h5RtF`df%Z!Y|mC#vvXJr{^^%Tt0tZ`*oJ(IdvxJhv#~+eTr!B zg4E>cT^X;2|HpRa zPd>2!U)z-x&Po#(p;9=HAI3(hO$iYuABCRdIR6fu$wfiCa6Zy;oJqxM#4IafO{oFH z6e=}GxheciS`!y-@>8WM_0A@#vokkL#VIwMnpSf2R8o#MC2+KY=Tb#%s&-9&*}DV=wM7C9l-_&~w!alggCIQNEl) zEg#ND_;ZQT!Afj%c1f6&sTiujo?rh70jyF_t4t=9QO&7joICdbW5$YeQFCa=;ba@?$W97<;K z_eT=L_()EwF!^!AIF-xr@uozPuTG?%tzh*U(`9+u+T!>CHg=lnB=&&p6>qj98~&Qzoh=gh;n2?|cdsZEKrv&oO1J50eT zGF=l?*_m#r%qY4$t@fwY!*F^-Sf1l7?pl+Nise$(+%OXq znP|>8l*=$#SYICdcznjq)T722)=E&%qA|eZzai_FTDXD=&B*<9^`69EKCr@8&P^T~w zk(p{XQxXxa;}I^hMDi63BciQ7Xd$8{Ix+du4XGVQf*lEbD%q7b{8l16Kg%DS#1Rw5B$*g!9iM9L@!bz+$->bI{> zCuaN&$lZbPjm;fsXwi|1Lqh7IC@U?G#NQN(mq_v>bzC#5!7_qAP)AWZKLsOMvdD~t z!$l(6Ou5?_DN7oU&ufQT+;NX3sTE$tbQU8_TBW0OYzj^R>gXm(p!DJ-9i=|uY1W|< z;@9f@yLgfx2P+Zr>i5X01q*{NI(mDB8Bcqt)n8+emcVqU2c>X2ds3&Ab!$7+2B|lE zHj36!tiFF|R85Txo@QG{LSM}=ONB z?T04mMWHQRR;o^+kgm%T%4QIE(x-3QGJ)vhDG4e7|Oo~pB+@v0Kx+)0Jw8*e$rt->TF=_7DT zL0I5e3HLs!P&Q#N2dRbAz(N2b!o>V;Fn@uY^q&s_jDv+vJ|7g>q%IB|EF7IHm7{Q%4> z33s@Wet9c0kNL~s!3RbVg>4je$Z6ZrmcHv-?m9|w9KyeU4Up{Ag~)U@u1`it6)$+_;WxvfUW@j9`ruwUBCdD2cTpTf*hsj1V5Q{ zzkxE4MU-sl=Mi26_h!(Jz+-?MGfDu@0y-Z4A;4k8mqPv;_`SiO4jwsHFcBaY;ji#_ z1*+k$hRi#-hXdYl4+Gr-eimpy;3{}8fuqPz4BFlkxQUHL?7VBB$>8lqoeV>qY2dv> z+BI;$1(kssA=3jg578Nr$?(JQhan%t&glf1Q}BNes)c_8+*jeg4w{d$yCKcqaFa!o z(?BD_FeN4&?J$Gy3%&iopNn+5gC>CY0>BG|+60n^_?;0p2>vmUO@_=z_{p81uF&5Z zGCbTe@b`ccJL@6nTJXulr&J+a?K9;Xet;A=?0&1-YyEEt}w;1CURMYN3x@ zE9QeRvY;6W>_Hfr09_7b0shcA0MvpsZXt|J&i6*$&xe~V!2W}9DZ=+dM?B~l;CF

H)M_>JRfd1hqg)KAE2Wb5CcR4Cdf<# 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 diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/._SUCCESS.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/.part-00000-b14c1424-bac6-4e03-9935-e969a5a05f34-c000.snappy.parquet.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/train_small/.part-00000-b14c1424-bac6-4e03-9935-e969a5a05f34-c000.snappy.parquet.crc deleted file mode 100644 index 3b6f24a55dd932fbfe56c7810f18b5f6af426d4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 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

_^FHTU&6@hdI6 zj{3b&xpK%d**(Z5Qy9k#jXPNP{ZL`o^>zGVZ#IadWbgO})?eIVV`nR%C_3I?p@d9c zt8R-nm*{1!77H3yWYoL#$!8OV+Sg2yd__5 z`(4roN|tWez#kB=yfjMtFyAA4Bb> zJyLS=Rs^odnOYIwpqM7YyqG4_T3iCxUVWj+ACeTYh4`mGBGZLgGmO(WhhyB;44KN# zkQL0Z&5)Vf*ce&StqD_t6^=U}1Zo@XLaVQXE!g4fuoW0}`mKEb>KS)u3I`jvLhY8V z{Dea5R?OgryVSvdTDg$JI9pcVz(g%3A6hw0yox%qSP`@u!L3w-cHFe(}T4SdWUq%RE7*DwwZi`*Zo(Q^IVkIs=wCvq3D{R=yFY(JY@|Pqy_VQ21wb?#1COBAY z>3=(HRv}i?0wHroSGOXesGcg1*x$KhB^KtLvbb5so$Kc2;;a3nS!AG}pToF|YuhfN zVd6e&)0C&S9$30&?x`<$YTHvQySi`hX9*6Qh-dWMPYKHtqW10P+UtMuA_Y zw92*aApcSHw}r=0@0w#DeKUhZeV^bU#{-jk#Zdn5`XAy$F?Qw#gl29|`~@9%K?L)a9Wuff{Rg(@=vYL?x`2Mx459bGJi`X+q`{T*0H9s_- z`NdD^`?;{Ao%DF_=lJ#Wt_!_>JNx?9Y~vR)1#|rind8$BgZ{!;{t`>_1;$cnJHr3x zui3V*$e^Nfit=ZTHc?^21sgrc!P?=v|MEGKTs0+{0z*xPOi3-KtB6+LHvz;pft zKUhK5@!t<7i*Cybm4DpMAH=Tb_m%~;rrmj5vt&^^a;xt8b59TGj=ej}4XfSkezud; zoc}!dYHsfs`|4DT)tQf$Yb5{(ysk&rq>+cK3PUX2ie1?x!5qvUc$CK-`2ni-EDxA_XYVT^t^PFn5o_ zMx@CAN&q$u&fUvc>|}hftAHVe{0h0S8FE?@u!(V6gkf+ew>H7*QPAxn=mq+E6|82! z+%A^|7J^?sFn8Y!Hm2kP+77V@41(m<9#{*au-ilYJHR%0bS6VCAB5+HV7Cjbfo>eY z-=YviaC)7hpqu;1H-99&0V^rzokrLgJDqA3z%r!8f-iTkMo+|tg9m5Q;(o}$6=ksb zBYiRu2A&Fd%*DYo5uir+k+$1YbROa9$YcgR72$g5<02F}912fG`(Au1CJrRrjHO5) z@J>QLY>bHp_%q-tbow_4&xQ_{K`)7Dz)a{GO>^GCGCheq=S(@jRjzz>mz>d9Bo-vr<>D1)j<3F=vbPF{uh zkN&VWdh-aJ2xLBZEP$-Lk*7E6<}Q!_83VTmI`B7i=6uj$7$rtj%2}}%K&Ne>EjmJx zWMB{Q@&%nc&)$Z;Km zKo^ss6Xa=uJP4BLzOV)Yb9Xpg0)Iq_64q|++kej56NNtV27No|?*Ss9qix6=30f$4 zJOiz1Idq78t{8(m5I=%3umt#1m_Gi5&O#CX6VMO9-90lLWk(}igz_rL;*o|v1nqCo z)`CYm!WR+N0saE420#VQv;DD1SO^(DLAlPM-Ik(uq#XzCN9cYa>dR4Kj)3We zgq(L{K;{x9EQJsv6nPGyj%dJG$h{PJ6nJp=#4U8eI7NEGE6jV$#f|8b>w(Ze(u45l zA?is+8(dIkB(N6rivuBRX19mbj&#nN*9Q5{pe?^7AVV0=)?@DGgVqzg*Mj#Fr$F{eBcLyoFF^TApwC76QZ4PY{?#IG%)&Dvg-3QG z{4ex^raHZy-(w7DVCF(Hi8%-zg0~uNxB)$Xg*xF(Asx}^6F+nV%5nEpaF(qj$d6`` zCd|L*kc+#sB@6AE{1APMy18#5JZhj1cf2jVM1Cyw;#!87QDQ4du}8&mgBe@_z%x ztwa7+=^@rCm1~D%3_G3*!JQ@5cVD5gA z1;|(Pkal`oQq*{kp!_sI1RxiD9mvPs*Z3Cj5#k#MLO+nB5#g(#an`+m5Z;OWYRKD) za5;ec7G@jpJjgC|r$`(4Ohg_Z&__eQnFznbxQI^0Jb(^TkasK6R+Qph1!)67OU9fR zL%!bNk?{e%AIM+L@drK!{a!)75F?%g;4O#l^hmpcewzFf+6LM%^vTztao=q9(qY`9 zT;(3jMU?vs0z|r@&k^o}bPMnu;F37BI|yqe>f6KBk2cK@!Sf2~S&+K`>(tlK$v4`{d-GtM-G6L_i zc;~qZUR$BFwPBDA^;%KxEo2%Cy}XC|D!}ifG|VS8#sGeVQh@ZK;3b9}ekgkjG9-dl z09p#ltU+A|py$irF$lCRfN-=g5VCQecq8I-(3d>q-Rf`}W z9)Bb!3UUB*FIVRwPpm)nf48!8FOL7Svi~oJqW^zZc5#^1#&eBx*!WD6(oRcRR)4+k?4X#Fwc$tbEC!F2*DqQo`s3L*Ib`%fcn2Vwog?RNM#0{yg(q z_%dW@|qfET8+g)~^3RU{fU|2ovNXir@m5Ch<&R8(6DNBxhL(z0u5=!sku~gMt!5MbO#|ikilWwgq)WFok*&$=q&T z75SOby+U2UYNS1P*Sth+Y>||%--TlP4>n8bLrpKG(Tx}Ta@KggEvAXHvIlqUfJxq| zI<=MU9sK6yw;~(MRB9O4S6l-bULVHO!ya@&U6d{u3c>qA#rQeT0PE$xm)TZV2xKYk z7hKZiO1EY)-|>Pwe3`(QTLH1zM=HaGeo*5O7o?>u-k5xh3B ze4U|(j$ym({wiZ8LrpMFW#~M0ZnJKhvf3c<3b4X{zrZDl&Ugv_4De zPKWBOgl5!T_8|ZDS?&^s&AldylIJ@*~I#*;b+!3kO?h}AW$3}Z?hQkpqSQ+|(Z zukkYnta2>fZwb2rzszb8h#)vc_urE1(Tll9Q=^%VEYs*gThQpifvp}f!C4p+Lv>wa zX;x=t4f-DA+~_2)>D45dwYqRx^Q2RsW8jYHdBSt-sQBMKv!pDuF-wF|G@N0L7ktNV z)7@0a)y5ShI7?s}H$HFU&5Vi3U_Xg!9ycDp8;dTROxYuu#nVd-suDqVjvSg4Ot)Qp57cO=Oq28ZQ~D-`g|QGd8fcG`p=7G_Wh+xp!>n^ey4Jo zUFZsvL}<_bmC62I#OyLq68yGx4yK)QeV)`4GK<(E#ne?g>+PwP;{>Kr&ynP8mqk)_E<(jA8t?fx(uB)eA>VUisdlySj!9=!t1w#5MJ!pT;pf zNpR&N<426SD{yg}PC3Ql=xQDIq#jghGtYTx!fMrPWQ! zCk9h6SYbi(lR8Jq9k+65C6_qr|A=RV%HIECv`F;9mdfNdMQ9ly)&Ne3^kmib|N8n@3Y zBlhj_&nOcq`D4|J&z9|=Og)UkOBL4T?h`xT>-RjbvyM^THSA#2X9~nUHB#NqVAhf> zE-i7W>2>!7Gj~<#@kHH_nPyufDzOOG)a!_D_ogXQ3X=w3j6{^=Qglt}Nf*Bhxevzf z*{ZkraF3(rJxtNvp4{j+?Pbgcoj_h9rRwYSn5S48uZmP9HWP1$9)j|;_(vl*hL_}QdqGCa> zXb8#T=XEhw1n1V`y`jb1MJM(mnWjdslA`FN@{-)dqueZ^Cx{JRcqshRa#W@1W#&l( zZbs8rvI#{65B^(+#h%qOay4U=v~rCRCH0ypzV=A-yqXDMH^+iKb)se|9tDh==uY5S z7elMEECTw6AZyr3ro?tV=#JjtM)zg{j4Mv|EIhy_dX-pRP6cyM4{qf+mGMTP6WmYe zifL;5RrPCA$EMl8o(^VPd1pS}<$`ske)R>>hMt(RG~4iNkXM6?oqE2L z9us?tTOtnJFvQBXkYFW3`F0KMk*M*(@7j3TGQBQkrhBz|a#nV0&)1)MR%E~`D#WfC zyCd#}nLBTbmum7FfBt$OyHJF)LF3N*yhXT(<~er)oe|jO1BQXd?FPmacE9ESjPP6R z$dU(QXEYYORJ_%5XE_I97cda`2xrU7YoFEp~L#NLv~UivsX9qz%DtiMy5g6?R^2pj`syEI)}VSn$yy+*x02Jc$T- zW+MEZ3wE|h?~lfB1pRLp9{CDs+^!uPCFeQS_fgLggprlheAw-Ad4=@*kneUSc4v@f zH*~cPJWj8Nyr6RyFg`GMqd1yIdZM3Jj;6>V?7GZgj148x0ffjGi%!O;0Av9ADGX%- zq1+Wnn*->N_yS-#bd&^)O(6Le^+>TpoE-_isQ1g^&_DX}6V%0>=Qe`zQQ*U9$1dPf zlnF*XYmxUdWc5J&EWiCIUW`Ad+8`zf77&^hZ* zFxsDtyni516QBol^;QKd9>SjhxE**uu3i9VEqD&BMH>^-!3SYJ>bnd2b_}k;$bSoZ z9*8=OfJrb(Jp%6=Q2fuBgPe8w2=YQ)as;w@Adf%NZ)3;IS+2QTojL0qR78rPj5)9j zxS|eUz)kd3CGv9?sk?wE$N&+X9wRi%`ArdyN;+@i`2tpkE1-P_xQl$RBQQpa0orcw z#?@eWtspmdhIT%99zy4=MjgNQg;iP)FAr!_Q1%wm{|n%}6`Y6cBxs`%k3{%5#{W9R zw|0-yidVVOdD4$?4moZh?F&ScUjdt}N;@qraYl{tB`Wsm5A|G#Pkt zHx6;PTq}`J0A5?r=~n3P0@8+}+&s`r03!gyA>VG$6j(bfQP3C4a-Pi(P@c0W^+tFT zcr4-KkcYDXuRxjCh+jhI4$KFC;xaqf;$O)G#2qQTs_El4*8w{e~$Fks6P$)?;t)Oa18p^ zqK;GOgSm*Op-l05^cQH}pgl+2dl}Y|{-_g^Y#8D@KyN}lg^=mqLDY|OqrqE1H0rv`1r)F5t{FwJOJG14jrfB^g@0LF3W zwQ=W>{~5@a0EHO)3oszKv&vJ)cUzD@#yETlc?yv}XBgID;5~qykn0dIjubn+E*~Sz zS!QD(7kBR51?^mcayX1Y@)6HMdsaY}4%EHh6>9@@z6khJl$#D7+%I^XXuvlq=*wvE z*n~7A(!Pf*+!^t&z+(*t_!`hu2wwxXLB~l402sIP(0`nlNRBj!PF|yL_M`4R;9Ss$ zBku&zjgX-Lc}0)|%_V;-F(H@uRtz)4*4e zcL(q)z)A3{0yLsN&f`7<`EMZq3bZ2{vT@#kVB{MEc!;^a3~lAU(R&OXaMo#vNakU| z+=sHaQLYYczXaR~`gf@R|6%J*z?&+%xbc~roAfqK;oda2J0-VGR|=%1>CP=S2g*gk- z=h=$#ZN%+_3{C`qb`oTYd=&h=f${4mcu(ttUFyr|r}60P$gAumjE4Na2Hgp8w*YS2 zp^M0`tkNoHD>liHA>x-nA5y@RHwt4a;<3~~(g!1t5xXL2+kTMcIq;<;3;HwKL_dI{s8s(78pYW zaiR`efxCcC9`YRqABrVNw^X!0bg8Akip-sYGSJ@2Znr)bZI1LqkfzG_%szZV2Ko&6 zdlxeJ(~UNQ>`iF%GKBR+o)Mru54^5IcvtYX5AM0ZKY*vl>F6h@w*h&TouOaBvj*@E z>i;SHD_X!KXe|S8e?u>n&&ZV`{$UKpd&Ex!d=GwpflPitIjKFIS93ojtke z8=!Fs>F1(u8qhxm`71kc)m_n!eKAg?L9eG{_X~NIFFV9Qjsw;{v#yy2zVCq6pQuLw z>K_N5p+aO8XzfBdH!RS9xRo9MEaV%5wCy3QT=>DN|Epp4RD^?v0O0dV8Chrx$T4yG zvt6+u=-5%@dl$67?1Fj91nf+JHjasq=_s=RdZ+BfE4yQg#mqF&z$UlLg?9NsQU%vlTlVO(wso};uJzGoiX=-`+cNW&VOi7 zMi00TqRwEE^g`H5wE6o;=QN?c;8%8`lpTvD7)Se~E!9ZB31JI{qR%0IH1Y|+cM-N3 z3@!w|3VjIP2%SaT1IR~%w2M*30@UA(c;#HsM(FK$@Olk?JGQOf0NrB9cR2F!z^9Q0 zM+N=6S>J=+6VN__w7U>rjq+Xt9%YBlppV8N{VDJrfXco<2y;=$Tn%28^I@%tc%Fgw zTcGzL{9ndm{DXfQbayIfGy~cI=z?Sr^2|X!k)1q28OpBDhv1(BU zaQMf8Hkz0?fVI#sWf#34+zXL^7MSb|_x@DOdys!jE@TaQzd;^#KjT>jI?B0?!N9+w zlPKrUi@|>%q}hqE7eRLbWb`HKp@aXkxd;IL0^_q?JY{E9fZu~WTcA6wa5r~-wsW`> zGHdFMa*;n1v_C-FSn!ew5;!_WPBfuDkkc0U^Wkrq2)Tkz49Y$Wea7w)kr1~H{H3G( z$&kAbG?yX#E+)Q1Oh}7#*`WC&;4i=cq-`98F+2_YqW(wF_LZPv0`JLiD;8>95I+cI zC|@a)f!pw0XaU_a(0ypdyaQ>%y%?L&Hjf~$hMt(~V60i5kFgShK96+oqn_`A?iSE} z6Yigr@QerjY=o78mJ75Uh^vQ8RssJ9_3RG37!UWQC^I=0;|l8f321FV{x*a!M!6qA zhq93Nha+ecj4K;KQ?XpCK)Y;5ea1oW7sEdgZCN`4vVmNNfR193=0Vwcpxqf5j}G!S z!geCvedKi@Fv5tj9sQvT(p*73*4xkzkiQN52BS~4>;VQp!<07=+^}(199ge zgRO`wWGNYE!uSkc-b5Y0MP4n+=>|}~-lbT!ybb<-K%J(bZ6<>cCv=jB9KwG~S+-=n30LuRy zbo-&ce<9zipmhy(T88|~5Pw5LJ0M;ii*`U9h918~p#=SQBmGk3uX+yiRPgu$Xx3HZ zEI0b~9<-}+cI;K~`Z@ag1jsFG9iBJH&%&=*@Wi04r=ct(XiY-62>g8y^n2vV$IGJ= z{{LWsq#x+sJq^7?`$a;=y^z0T2PO63>s#cT0lXD>8Oj)dycWbO7C+`%%nc!@bv+oe z7rZ8dM+bQAgt(@zkf{lJggo03X9bN1C{G3VB;a2_=f9}0^0l*d5tRH2`cNJ6HQIFd zcJvJ=Jg8q^&{WR!%{PNr1YLo=&!JwdjCml+sf8S-fuBI&p{U0=r1>vs?*$$Qnvp{= z?x0SS!OuIOl>+xSz{z;lT|gQUZa4UdM_H@kKLpy}PQ^16ZSytazC!p43C~}|)u0UJ z3w>-Yp3BgUI^;7U{qKmIfwHDlVy=$5y?`=!#P30P3Bng1K>vVloJ>JIP~TRBof?b0 z$lriEyz@Tlh&~jA7$e9&#wJHKG6Dqf6+(hB$}jp($4Ls zCJPO6T2#?(gv+upA=n<%I6Xm5qbl+y3D7jt_DI_i>-`#|SE%x_3B4K!ZafzcyVadb zC^Mdvg*Q1h8FilEIc5@l&k~@zN!vefBORX-PR2z`8cTU>_#G}M$E)8`UrsX`0!O&5 z2922{=X$h`BaOkD5_RfiIY?!02t8?bcUf{L$jO}{8skb@=_37&XUIp+mEC+&u*!BO zQd7UO$H_avC9BJ#?^{;&xp}AElBTkl-^}>Np0EA#C#v>DSWUT!yvmp*=}NgQlT}#f z%!-SC#O1U}`i)!J_!QR~W-Jr3t@&(1ua>|O%NT=-t4JCsug%+f*H9O3Nhx?sJMws= zIBLl`EXS=YYMK~&yso129M8J34 z=zB@4dS6a+Q(s&Mg|4-B!@?tzbUzx)``)H6Eoqt*^SJIq^04%!POWhr{|vA1|D>h; z3Z1dzf5UNsZfuo@-)q!F)XSPSrd(%~)ZuPxXgXP$F`1}ZJ()2-2d~b`iVdl4A}JHA z*Evmbk)zHI?9x!ZVadHXW8ejnmA;YcoKY&{;K3T_#!X;SWw}7|tmU-E8n1lvXY9}V zt!J|m7Hth2He+H1y$QM}1BcJsy@@_7Pkb(-o-9juzj|vTv3MGZH@2o$=T6FwaN9K{ zhP@|^$wNkI^EJke`*ronBOWyn4cT0mGbN?q;9AGzG?LcVnxd*7GV*x38$5Ix``y|? z&5_Ntz=ijzp+#rY-EURxOIn7y3h1Kshnf2eTacVNRQXT2EF{#oOK5yk2V?x^6QMyTy-N=Xi zH0jk5?#T(65tE#I)3+WuM>OtAT68}hbf;>nw#5}s?Y85)i=^K#5wY&6q*l08oRc4U zb%&;VLeBabBfF6s$ET7vmIlLA?vmKYU@7)K_(Y2Vt=PUt{#H-(HY)M@$2WzX!VloJqT}<@bs{+wwwZT5C|2sbmIw;@y z>9Fw}>GxRTD~d^MWD7w8eXuV}wY7a_?t3n?*diw?F7QZ-o@Ejqg=Mra%~fXShrvKH&G~4D6%dxN+}Z znmV22&e*tV7rT#UO^?pouHSrU^1e>NWay|XSGJtIwvR6PZm2WTozrOA4?QB2V)M8C zHfevi+T>v~Mu)tjY4(TmCHa#yZ3(^34IZwlYuxdm-~ctB9qu}Lb!1yj;&Z{y5z8Xc zr<)T8{1s?Zg?Rd<4kfP@5a$~=tW!Iqb|+6am;r;x-x4f zxw1X<#38j|=D46SpXIH4`|WeD&lxw7-2U?hsTbeK)LF)U9s4PH!&X6SJ|6q6weZxn z6I~WfuN(K%^I@koeAlJZi^o5Xv<%VMx_&$BFV|MI`gkGr~| zNA!ga^_qb=(ByM!`i3{|-e_KxG|Q!XFY8S7Z@T%qR+q|MlpC9nX34FbC?30c&b;L< zstP3v1PJtC94Xty;D9C(!0q;}km(JyyVdd(6IWEm8JhQ#<=>8M0 zm#*i=t!o@GtM$Y~T`Sgl$J{*IqsP&Ob+e}SePzUB_uCZT!r508^~LA+-+rgz#~!6) zR^QSPuDh;Pt=bypeQ%}j5Oc6!}oNbO}-qtu1wXu_e`&tj5#E$wjJV<(c`SIbro9CYeR?+XhK z{BlL=bX;sNzlWIDOu{okSP(p}wm z1-$chAqRAOD-i5;vxJ?hCh~EWe-b>88s*>CyVjMP3RuwR*!Z`ZPV88rta_%Q`O0$818yw=;HBanjhVURM2<=JLc_ zf_B>GM!I7)r?TDA2Glpw<45MWBium~dXexe2`fXYB|&38Gp+f^${wescJu2pztK5Y zsajp_Uwo2jyt{gl9PKVH?}chsug=c6D^%yaZc1s%7&>`kNNsD@>3+gmd(B-#fP5~c zos*2bcv*aFYj)>}6W2My>&Kof_I7#x(YgdODLlZKo)$ByQf2&_SiaevzWq_9s!bDl zweEcPP-DidS$m>9jhlKlmXgwF3|MB;dwcPQ1&8-^_&2wOwx+%G{H?f-|LH{r=mJdxal;o~30?i@9_b(Wk!|g~ngrvN96T^W8^by4KA{qAj5llZW06o?<+^|{DY^J?tg!fyWFi=D2^x+|^y5gDL{n-4AGe*xR$^`0-=@sjVIO>;kK^6pi{743K3p*E%iC+xmYn~k=;s~Z{{CRpCx@qa)~Z^YgC8#aWPfY7 zSHF&S_g{Ks#Pa2DzWTS)E^Q;+ng!&n@W2w-$L)=L?Bj+#Ai2I~nrblUI#@D0{AufG zSwOn1EiN$iv9BF@ZMQ1?L&B8WEALMxqnhdl_Wb;9T2j-a!}ZTezd!BwCkO1^P*m34 znzEAC?b|+G|6R`D(RrKNweE!-Lynl6E9w;^22&+|2worvUK}vn@-NB|yiE9aD)D0D z-|5FbQmQuv=6Ht+_5w+JPxa>K?yJ_LNqJs!y_1aZR#tdjI02D^|c>O&?u_-x6Z zmuZjH%Yq=pCkpmZJq;CN)e{A~$eUF#vE}Wq1czRf1QM<{+0*R8K)XqF8RQVVIwVAJ zh=Rc^NYo%K7S#f^=LuAA6kH7NN}KA6wa3{FVwhen#1ArtgmPKDY>;G8rll&C94q7r zb}6%G0Cm%lQqf^B8q#9vB1vx-?WF>V6ZBF*p)oUFC>WS-@CY#+%{=k(D8gaP64ZLTNpJ{aXyGJ#0TX9oqy>6jHrp4( zOM*Gn6)?{w>J#$>T;ZQ)k%aV~k{UI)#tD)n2o7ghPn(#xQiv}toL{2%2vU|rOZBco z!R-*H=mk-b>;*K$Zla4EdO=?rmM3~k!y(LU+MP=ARC4foqZl9NkR-i6O&`vO3Pxk8 zAkwrvA&;|*&cX_PK2I0A#GXcvL0usjM^Z?Ap?!X)Rj*&7&l48L*?Y+Ld11UTHB5-b z{nmounUrRa6?wrW2@X35*{KkhA(YrXe4J5GWyemOCrkRc()oOv%VBWY1VJx^CYFSl zg^A9If~nL+^-~1Fl|Xr$M;4^QLJHZ5k{Fx4Kw_LFdRK^jVLUI8M0p|=DMS<-A2LZ= zEa{8HxG=pOY7i(7!3$YdUKGOcsZ*L1B9x{H-2_o&9D02>dpu%!AW}K zgMsFk#tHFcDi1MIM|XXgkY%@taUN0N?cGbm3?PODK!|W^sF1}AVF7l#K2}IX3xzIp z#ZlUAWS+esD=i@1<+5?{g6y(LX0?M3PBb_c7D^#PXn3B|0BmfC7?v0}QZ+FYdaWKA zPZ%Ly2$g7oO=9e63+;j&Cgd#)vt~(CEvSxc>nYhG{&>bU(3w|C1*_6w&4mlm8-&tA zfyUaq+2hbq*>Z?Qu-QZ64fc2lH>9-0HE)VJALn-Lp?N~76zZZviGaR^>&Sz|9YML` zeMT9=UVgS^pzhj5<-?Kgls0yY800E~bfKqS(P0KN%W z3ZWf9+AaVa{2741QDznVQ{i?2jsO+`w8&>ixCidDfL8%nM)U9KVEN2%=dca@^n*JS z@E@dA>>Pf8TX_V%4u}Wb17JDMzrVQ)csHN~U`ARj$&tRGkpcI9KrcWR!X&_Za4Y)| z@4_7kP}ZuIeMDt#d?x(+08;=k)AHNBh>*Pn{&YYc;8(y^zQmW$ua0DsPi6BC0Af;L)fC(P_4As$KLL=FBL>&XWnD$hNhW;xWuBBFL$F{ki zCTCF!9i%iwKsG(H8HhSGTEw{*goe@JTp%V~%RsRh!bD=@iQ}TFl?b#GN*Kmd(jkTk zEaf|*zZt1d{aPwy%up_tA#vbDPkXWqRR>VD0R@?G;wVMEit_4@X)a|=P+v+Dq2N>s zph>g}&GMZ(D2pUVq5V)ms?t}xbPYDsAF!bmoJOZ8dKpD&dN-O%$DsxpbUW!Hh3X)a z_H+Y_@6sq|q)2!AfZ~uI7R5Q*Gd>y3UqY9M6WY6vKp3erh6xRQpF`mimV&sx{pc6E z=O8L|XSF&UQti(S(9{-=8L7msOkm5-pO7q+}HNHEqX@ zOGuZd(%mc_FZVV~pibf%DZQYh>WSUdi{vekda!x|J9-l30x6Cm(LU;#Jk^F!o+d#R zm_+3Qzv*N$jLBjCc1|}%3#%0a&IS(Vf{U@SLCcj)(`jJxbRPQ;G?@NQ=a89FDEh~& z*@Q6!cErcY5(7(gbT0Z|0$QDxNL$#_P&!cUrEkzc^i<^}Y&ZHEtDZ+II8-nG4>n3m zd(k9_eLkV{XuD{LRO#8V!4qg{_Q&CL!9u9`B8rvxbUHK|EzK~CNt)!Ly~z?;O#|69 zD!v?BLxgt&(Sb-PdXMA?JWSt8v3A#f{CBrbsu5 z;CVBgqMhkFj*dhsQW;C%)s44E5niJKmKI-P#+!J6!oV=sqrJdZW50#x06* zZa<-h12hq8y%S&0L*o(Z`WK7Ovh|Q+0{6*dO+;8iXcve-($xnH6w)p@@TsL^=ymp> zpiZZG2<#%)sA+bXG!lna76;x72NCe7%}!(w8RW=tpQQ26`5umC9qC zzWE{})#Ks3h}NQC#?t9a$dSN2LiefFS-Hc>TPXCXQXOE7oA`%`*~wI~F*R4*5Ts1Z zc7#5T3L1duZve_Oe;uAw&jD`+99KV^kSVzp6%eX$DP<$Nv38|J(*V;ECcth5WAo z<(2r^d}Io61=5ZJP68Ht3jl!@%i0A56KnP$A z%6$!3(I-^FKi_;2Y5#_-CSh{*6k#s`wg7qpl)YaOSec(;u<_foWy1Y8Q;s;i23KW~X<8Z$U ztk@wq5%w|si-Bu^+XK+=$QG1og}WmZK-sfB33m^K=KzldYzL^|9}RpOvQupT-UrNr zUyE>MxKV7%egvJ72vh8#4#BV3JA91v$}H>w;s(NR0d!LU@rn)bMa2CGoC16mFdWbe z@HXPxBRn4NCcvBU4+g%7u+9L*o+}p>P;9fK;GYb<81d@?9g%h}aA&|kz)-*&NRtbE z5&S4~TNC_cz=|E(Cg68~zXJXeU`3j{z#_sNpxX)lX;7dWs6!>fyr6GH{2I9T0w)9R z13o}}9>P4pli(i#IF0;jq`!u6WsW`vVK(5Y0Obwu2l%@H>fo+JnkR4<0y@I&0N#i2 zCBXdwitWZDfU?g%2)g$z+@}z(ytiEgE<)HFkck6%W+P0ow^Ho8egoD3+mNOw(%i#f zumJI=;m0`Xe{bo8H0R-e2RIFJ$~(qYxUU1RMBT$tW?#4!oA(a^O^Cy;yWjr6jqo_o z?T_$9D5pDc9>RVED1+f1pbF$qMVw-*I38(>kmhgrw2)72|%FPkVd(%DO zR}ijD@XsNi7jESSpmo4Lz%Haw-ksXuo`y6YKoIiO02=^pa1R1L4&b4qrQlbYmP|%? z4BRomimiPm@+-HNBpROCc)H*}2M9pgM&Kn#cNKlv4);R9qIQrG=nVrev4~U7qhtY& zB2KYig?WqLjx8QEm3KK0%J>X%ifwgY$o_e_mGd)-T^44gwvo% zU`F1Fp#5KjP151g$21l>j45XAil_+N-$33qrf-Z6pS1C2g_L4YiP^8Ps$ScP=T z-Q&L_%`m_Klv|DPDDa}ZW5*yJu9YXJQMVMh?*WRH{NVFG^5JdFZ-cxK_#=d`0W`tA zANXB>VwF5LE4H|bjeG;roj{mkk8={Vx&k^Q?h}L`K{$ha z287*0+GM1`%*6jL-iQZVU&zRVG@}sqCE^c3=IxL+2>Fj8d`B$SSrB&${tfW|g7`5= z_XE;AfPXJ=1mcZ=RDg26M_DsbZhrY3?v5xs6Iijw8wuME&|?(G}{pN zAEf&p{tWonql~ZNuR@7NRtFmRuP=Y-vRFa zfD3T%1kZ|n;uiQPg2qqCE5p42@Bz|4g8#O{17JMdEbs%sJj4$IEJN5l_~YQNLjL2( zQw;Yw(0mW!0-zIkssJ8}xTA>Mfpq(j&y0G^Mwl0{6Mj4JX4K&k@*V+S<;a7#5K@b{ z9k|yZd=%OkpYS0Y0Sw>{;2Y>$Inv_6VTC(+sfmrsw{yCJKR=n3U6-E;!<*k;8OBTb(bbvgD&Hm^GtBBf@k-U zm+1nYw5fQRE3N0bewMRAqH;e=3xDmWfGetscbmePC~hdZDdlRmT-|4aDfFGp_EqL}$&BR$7cIRZ6t?LvFPx zPiFFxj&gB@b;>O!yiskc&WUX_)zsMr#SbW&ccJ5&x_XkZt@!9*eQZ`keb|l#cP}KW z&16W@?#kUvvRE_mqxLh3(;JhEeH+)NgdA=h(kV9U&Jg_w^0PML$XRb$>M>l&l6w5w z#E(0lytliNJ7qj_F8ICN5>?mtn@h6P9~i5ey4JJ#9&KYm^U8>0x;<=KoMBRB#D~k= zm1Maot}Hz&^~}Z8OXTMu_HsW}aM!x5Jzg!z=@zWIR#2v+t2PZWd{gNh&UD#PHoT9n z?pQna*paIn`i{KiYfMcsRk?!>E4P#!JSly`Wn3&;E7_yYa`<>~d#Y zfhUy@+gU8JVH03f#7#T^wzB26LJ-n5Lzf z*W?~I9cj*uYrZycm`*2qh9w;@$yd#7t=ZHu!|A))zNx@iKfK?s_d-+y!ISWL>Y+<_*hssAJx>JJc!n zT-P0!4cFEi1{9QNM}{fn0Ox(+^ghQH52l*+0i?t_0ILe6t{!++|88_ zDiT+BA1O|LzhF!F4^N#pM!5@`8^enC?Yl8TJiIS(jQ9kf1)TlXo(sWqI<$>sO5z*c z4wr*3?6%5MWiiaVl)X{A;K$~bB=%|ZaP{EB`JcAGaZ}Y4HtpuVE8~{j>7G44u(@G) zY`{soXZ+ZQ=Yl7^_-OO$2@X?RSVS?F_?%O-q@r&>ahkc`1z(FT6$!w^Dgd|Cl4r* zKBJqKrm3gQDQF$YjBTs8OxZH{Sj&_F&i#yPOBx>T`MjChxBa#Iv#C{QZH4N5vspK7 zr(C{4yX(aSRVUwi{#w`CHB+@QdtSf7Oixj+M%OhR4V#gT(`YwnSXsJQS0mr_%XTUtt+(yDgMyOH|) z;BEuVpGMCu?ltW!_lYY`Woho<&h64N_`n+Ns+08mf)-n0&cd}tJv#)4L}yua&BJID z{WRP2C7Uw&z_{lQU|0?LVpQC^pv;m_H8UR+kQ`}!bn};nmB+tcwfNv__sb#fWz*IM zx!qyAmVAA|-4eC*uX=arJz8?!#8*0pF`ZA_ZcDSaCN?j(@p7J6ZK=#Ei3pJj>=xuBmT# z>||O;)#Gu$mUaF$aI!ve;JicOIzeJuOT5_UYr_F9!_}eO}wb+#~C>D;}J+r~{w; z{%ZU5i;V&9%j!C-nz_93lBCkF#?2E?6VJHRBc0CJhu6-Y^JH)})j@$7^I31P>E;G+ ziu0JUY>wGnp*@(f`je7Dy_zi9aYc`f9r;s2t@hTETB||-cbiHT^7-#)q6`UkxgvCU zk~Jo5q`S6b#Eg@7`o)s_s#QG~JaDB9^|>lM56njTTt}@blbKV{rs@@VOEqzI-;(?W z6Tem3&0ad$dVaO(%7>OU38(IyU&EO0GODE5O}p3jFV1UN+xf_ot0vLxYiz$lJYJo% zuFH&{&#W_l9$Pm0`#NDyWnf0EEhPnaAXR2WUJX^xS=}~beTs3ncYV*4BdWd&?`+N5 z(C5@6DLACny^@`t`$(_qyZg~#b=O`kOb?f(anB$aHVu7=J$`48IAEfBa#hHJwlJ0T zRCRsTDXyni_ZPRIL-h>u=rSAVoSNM&`%qh1^`O|^R@-1x?}k3&sLkaYbp^QL#cuv= zulCbf_kEj2SbJAkre-DY3(AivHEebav~y?d8a?oZG&cPY26D|fgAob8slbKxm_1H0j~gN>sm#Fu`{E$Opb zRu4a2{p|$3`FI2Od`w!UHl?6uAd`~&&NMY!_vnl%?cSX;`b*~e54qWO&O!Q=w$Hvz z9nt#8^J;!U{pYXhOzswLXdpQo=dNLsW_Yw~!`L;~DuO%CHKjl3`_<_Nck=cVapl_3 zKkC;WZrM>>F(?&;Edy}gU$tsocyRd`WE|skV16SN^ zba#(i(rxG7ORcp{oMp zX97=l>7A!u)&}g=SoUw9^X~Kw+jVK`13RBTb@71jt}p{iGrED>vvKqc_4p^w?}h$4 z>7(S7$wxB{`NeXcx@$%>sb6qNsv_G?HQd|~ajd|(S$p8Mcra&vEP zn!(_bneVyRpFeeGR|syX766tFvBDDLLZpy!4{i5uqLn3QX9nopcdc*67L{#&Q{3^(Yufss-WuAE zeHI5(_$2VNmF74%u@Ix1u@cFo zw&rwVZAjwgElE-hW2F)zq{BSXC9y{=TD-}!7LIij#)y}D3&$9Y7JQkPCrQro`>Zhq zHy?0VDz*^fCRW1K@Q4+OwFGQviH{J=OiAaoVDF8`k2?&@+HRf{PsV9w+{S8K>6Qp@ znM~cy#3?1=E5yo83anJFC)D>ihha!?4dmxmHaBYtwFDkj^A<+QLgY$zv{9ujlHqg8 zgmc&Et(>Y{gBq5DOOGxeQfF=84SNmX7hf-KV11S(Rg&4F+@}R0R)txsRv57+z|q`1 zhSCaBytS67u&U(NGCFKSSqXLPwOkK_&7HhgdAn2}*ISazsJn7Q=nyUxCFRr_P)`qk zvoTn$G=Z-Y*|Z$7CJ|nbg57*0Ug&tV4Zc)OXgO(>8-Su6D$OKfehLZIap=!41aFULwJTut-#AVtx+W5 zCiq%65iQ(VH_U!jEM`h3h=ZiCoYEM`Z&W@(|DNJ+fa@3W8U=tErIVhfr$Qe8nWc06MvYNG2htE1= z>8RPlp-g;y8cK@~a)T|B1bH$nPV7m=PS7WOUJ{5}i01>w4KG|0tE{U*Ejhd!Ta?;H z#!0LluQlb+1md<0;c7vHBNw5J99wLm602dbWv915zp$9oASFTbZ?+Xl2HxHIS!K#K zsH#D!{)tdU23T)4hg+;kMzQh&`U64W5EJiA57sl!u}LlnyWj>m3ju1`a}Pc@+0OSQKR+Le;Fp zgA?2gX<(_fp4Bs3eI9fPC^NATgDnz5xn{*TSukv%F>`p@o#iAt zzikzPib2Mq&~&w%6dP+;3++nWj3!WG5r}9eDZWl)HA>~77Mh?mzvK=iIVS&ri$O0O z?O;{9eLBTH=1%)O|YEwAi(`Tzd!(*Yy*eNJrS{>NZOiTr2e{>O*lW9;K}Wx+>TL}6BBnO2M} z&$mysFLF5()QrIfYmuq^Swr`0VF8&f-QPZUukVA21J>Iz&z9NZY+}Q$vI5!4TdqyC z_r5kttMi@Ej}j^xveyS)z_%yv$lmVRd1=?_S$4kXqTzxwCQTi2XICRLD)Xr$#9%A> zQH3wiXNd(7+vD=>bkFq_Y|dMzakmh4!8*%p3h`RTwjFV6cV{y8BnV34wwIVmvv3(X^g zrTAC-Czg)yhp{z$MSYgzY;fz$v|O5fDZ6@scChWi9oBeekYfcq!C<+P-RjOOm>tl2 z3ak3On@tQHpEYjrf|i^%dX??2Av+BrKcX9o0jmqDiLuw_#d+11@pN*@;49s(XFL(q z;e)Z}9RIHEOpB$r24>Y~*BHX@(W+F^b}8R-oqW*{O}mW=)ad$$Nshx}70(J0yU$|zYuRSOa_;v}uipvCs%X{pCg*Ys_(ddp zvf=)5Q*Qt09@nRhGUqR#*>NR;IUQ=)#EKuWx#C8sBo>94w!hR+BSn=IokS49S|qCjd-%`Zev9y#}Rg2CQ(qEk=&hFtWuQ&T$o93(p%E4aS3}c8tej z;|(y;vR2tx#w%NlMI1{!ZhNtTZRfGH@tj8M@uejh7^IYV4mP}LZT(pmK4X$W%gD86 z-T)t@!)etX3ofW(y|QdXN|>RVlQ<=xo=;+^$47EFlNTsSokHVSua%}`BzV0Tn?bG~ z92Tg@)Paf~y37}8)o!o}o~TR&6y&zV@`f%CM89lKFoYh;bg@v}Z^<%x6z5<9%ExREE*6a51+*acDI(cMca!@yJxC#u~I4vsg6mnQ^J(%aT z5sHL^bn7iXNg9$NlRR4n>pi~)EvHpUYs?%-4OC?AZE)IXK#>>CQN%*zr~<1(t#Y^= zuX~@g%i`VSa|WWNm_g-aNR^(|N>2@3j&`kkKkZnj_V}E=13_z$8SJTLpX~^zbz4<7 zy@7;zoaXR4wt~&(L9-Lx5^i8q(a@Z%>L;5y&J^fzHtV?p#xpd1aK~OsB4)iJRhG&! zmChQGHUfOUY?0EE)E*O>5i$FX(#M>;K2{!#omUILm1T-jjYdw(czniAIjF&IDTPye zj4&~zbUDxI%j$FG=W}A#xQ!gtj?O?+Fm5YNAla{_+V~``TCO#Q8yHrd#^ag1LPfQ@ zW@w^|8OxTTt@#>u;~Hbh1u&Ow<#~37-lIOM^LXkLV0)F;){oOx6io6#PyL!{m;>I8 z{0_FlOL+bW%T%C4u&k%?ppn;UnW43AJ2J9uGNkjMLHvRKUl!lYw-s*XuNLIrMF#F`UyT$}(@1zUpVRqkON|2n}MHg8J?h z*9*ImI-0RSxpZ3nns}caV?pbdSzUZ9%>B^)i#bNh=Rs1v#>E$L;3Ae|wH}Kcn*{x} z)=D@oVxY^3FL*#Nt=Hp3kI`0GQf&NVP5fz3SMvyCl8skGZJ!A2TGwRPd4to)lOV4= z5`rvqTj+8lRMD8kvn$k7_R2!4jpG>Tnyt#fWyJ3q8%Wn?;s-acm0uYb3@gi_4tE zVz~05Z?fAM*%r=5GM;QG8r~+L4LWqqSd5E`n5C1VznAeGx7N!bkbyjH@jsi5Ja34G z5~Bk#!SdT`p+=YzlzFp^#=&gGZYcvJ zmn{9kX+venHdgCJ-zwIHhI;HqA2$}_w(vHsw=w?ISY{nW&uNEZ)IoP(={l$*$L_Pz z-bO~{vG~G^SUrt4VW^g63<``^YTC-PiSi@@_UY|vTat|{gYqR6vy9tk;{rJ-43Ckz zqO9S?ekR7_^zphp>P5#PY=v}~$XT9BLa*pa*j zZzc5hq&z9yDR5eYEYSd>k_&EPOi%`C1G@ojjV4*^Q5yx0t&k5HeMu(tew#(3-H7@n zp$w0&mTzV^$VO4>p6dlY&Zw4MMm{4F`U@RVZ0U-{S-E1QGS$dXE`lQzpav+D3xY5p*If5gjI+_ zh#hA)WEn>`M8Up!b1607sF6)yy$RLD~D`w zW(hxbb#e)gia5eVy91#PC2R~1hzRj^!ETqP@(xK9^!93dyeNpgER2j0Mi&-Phm?o& zDOFTZa^a|qz@i-WD91+8C{uejG7F;$WMQdYumr+ww--eq#9iTi}X4nbe)5FDcndQn`c#3(FN92E1jXS3Hj z1WEDOM5Q!=4^z7Y9?pe=xLFJX^V@I`2gld=Fy5{PR}L2EfEIQaT=GIuatKs_@R1MF zmSkZwAAw_K*%8$c8iJ_9&gTiCVvTVWL{%adI0QS77@W7WxtMC1mmCH=E8~Eh!h_8o zfjl@!wpkF2vLG6S2&9$m4qKQ@DF8*thPDw<3=gUcf(8gs1Rh20U_nH3Nw6D6fjTdR z;Y5#J&}ZB9Y4&7j(!wyX6R*&)I~?&i4krlJXx)WEwLGY8JVgx*NmPs|6zpMvAnCyQ ztj%grMf3CV2Izul!+AF_fhIU-hc`k@1KUu^G}H&wq<9A$NYC^8gvf$yuxz%A5xj_C zYHl0v(A)KnDFRgs+1Z9bxg_6?Lt>~M9}!`|j6o2r2Em>t*kc8;Bmk;aDnz0f`@T?z z7}_18wOb<`3q?rQE`*Mfd6C9Pgq1=(vS1Ow&h&JH-D$APCG?B7Dlt(+-?2kL5R?O~ z+eI8o6KyiogGWFu`c~LryMX2-s1migLeo%Js~CwqJk5`XGVo9pQI8W+qGWfB9x3wn zL1Kikr@C72aD?WGddUEZiiQXW3dwT_A%+k&xZZ|_Mq}7r)tjfIjiA0b{bskT_omV` zFe4edi?tgU#vg0zXLm$6MX|eI*Qz%=7N{#iL_3v4UMvuCB22J*>K2JXjgajz?w1Vz99Ql(!!lz!I$b?p203acZJ}rFS&kKLI91 z!RR6W+0Zuw_34NwFUbP zmO9d{v+9QVM_VVd4TAB@{~c}DBY6sKZu>M<<+p`ozG3}#oO8hLlLZ?8sBH&%<;|!Q zJ}cFT;=a#;&Cwvdj=gO5zbz@Fxf|741AGJY)x9Bt7TDM9hq-+R*!94WCDE-S_b#IP zFrfKy7xkZA8aqczLQoYi@(x4Z;@WJVbtcu>) zBn3wT*#xm+?DoGk|97B3$8>#M!08AZBNQVp=LX9%4q8_@=KbI zd|C~2wp;D|CR;s_=DTT_B;dYK#q{(9Y^wk4HJ=wn|pjC#jH((0*1Nk^gM&MgC!?HD-wG1)^tjSV(e(=LzjAmxgNk|E9w^_ks1Uz-^KQ_sMYC@25=w}g^+J;~&@4Q+wG z^?}5ZPH*=j6nYVk{NBUQOmj!fDDa!W-$mH|0X&hqN0K@y&SvoQDdfCj5on{!=v^>7 z%nT#};P)OH=HIYUO!LN)LwM!ujl4HzQ}W_ejGP(IRpGBmPZ_^? z{*wS9E9B z-e|ISBur(&TN!jb=u|TKC<}7BF8EiyRym*-DEBqQeS-cq8;=9iK$!NIqy2uHPiA*0 zAd%p|8VX$v8UGS36DtmprEUr%^QXZ?`BN2PARoodxl_al(t4yjnT8>Gi9Uo>_Ca}U z64?m)7#B#f24$Rq8SuVtq}BvEp{$5GI`ZE2PGs0JJYkTg560@;MGP^beMG?5JrYRQ zNG-t~AS6zNd7u{kb_8??yncc7F>}pi8*B-8AHKz1_fSp|+7%Bd|Fxv` zSI}1NGyJP@J@Pf=5Of|%$!*B`DDEPCK1M@cgWk7lHU1CZrXud|Eg~5Ro9Ty0t6Voa z17Wt!5C-__l#Ss%T;;!3_5+mDh_6vDgbctUktbs%FzlJx=lE;S%xec=IMz_nZ#w!n zZ*0?>FF<=qEPTiKBW;TfkKxoMsqMaFy+PJD`9BF_*M zvn4*g_cLVQa*PESzcxb5cA_4k(3wfML3ghNc!c?{yL}BjPsZ5xIm*Xlg#2eT zXoBv0kZakC6GiQk0mO;?KSS;drUsC8$m>G- z0eaLK=~~`-X1@I^+DOP}$mK2}WRaPW|3lY%$5nN7kKVJ-KIgzuPC-ErMLY;7C@Lx- zDCkD8qhjxhii(PgHCUn>D|RfgYp_I(QG?wWlN^mEwixU^!IoGPtT9IO-0$Ap_w#&y z@4fer+0)jnS+i!%%$_x^fH)WOb%uN_^)vMC!uwWN5sfPNiUIUPE5NZje!Lix?9{jK zUbB=Jo5>@H@Ryi*(QJ>0mQ?a?L;pD*Jl|1n?QzX(OWKJV(@T#U%rYCq@e6+9P)D`| z&ohc`YJ|Rpe#^|xBK$Vv!tMzD$iRnv9Ls>Fv6JFN%_jzNj65=4_zS~Fl5m6jKgix? zGBZ@+TpV#B=%w!xeuBR8XK0w$)*?C){@p@WsXuBd>bI*Y&K)1BUo*N8KAym+7>V~j zR;;cnKAP$w7SW!jckHAeQOYClr$ZI}s9SyZhj#;aZoE~vu9@_0>Mh4OL>7D*6XYot z&t;V%b-aG$24$pZMZId~7%)7rCEii5{y%#Qnej>mS19eL zERCTyZEhgEUqk+*!Sy5QN4$}QBe01Wz@R?2KF6=aXdjEah)O$q>Brvh(_b8@DvP-* zd_=GA9^%v}#%AzTzFc~&tjiTe1b1R=>0;22>DMG~(62uFQLTCdXg6P!70bVhK^;WC zXXzVuk~e&qMc#*7alB_GZD|t!An<)0G%QoT>f%Cm>5!1=TyBT95c+RGk7kBm`+kg3s^Wg4XiSo8F@Jxs# z{#E&3dP+MakN2{t*!3_>-*Ud}_pzrmQ~?;#%kW7ZT&|K~P!jqv}ju>RLap8wZ}Khspn6v&c%8J|KSTYZWZ ziII)TbTrzS^3e)Ufc8?8%>F)wl1C+H@lg+}BTbP^8H`(|8AXa*C7O?Qetwc18l84b zR9%~<$mW6~MT*!~I89`BRv_A|Ww0?#Xw)uliD*&d|PcTyx%bcxZYeTzCx<;H1RtRp+c*F;*gH6y*L z)HVIQQlUq5n!AE2+TB#{9Sx;^InPbbe$hp$)9RCd)M?5;ulUtJo}cU2FuKU?m+8n( zmWFIweAGWHT2TV58O6=WBh4M)M_R7pBwvyxNuzwyrU#DkDH4^em(CLwo&IAbzvA{V zg4m#mPunZz=;-`hVdCLW$xkcHl=o5#v&nctbxn6%P-H)!3u^FejaPX-X-XASIAQa2 z`l6aB(t_yXlOg%t9CJdKrd?3NmPco|G((0WuY5`oR%HUbCZkAHGmh;br1eCYKaDOD z;Z`379vpYf4d0aCVQ$3MXth=K?K_qv$$ru9R`Sk6Br_c`w3bWX{PambQ`1!3M5%Q+ zn1?_8o*rvm`&*rL?>mSnKVwKLSw?x)vHC1cqJY^m>R1Ciin^!5J5ow`Ro9vUK_;g= zRr)EqI91-7QQ{Ttm*Hq5Utkvy8W>_Prgdy1U5U1MRM zjdVLBdsh9a*2xz&u8OvCb=2TQd6S0Wo%j!5+(D72L|w{HwkP?tmrPFA`4oh-ebWlPXSA2B zDf#VX{}|V)W`W~6sm&|La30bx13?QOs3_(t3sO3?th#QQ)GA_NK?kR4$MFuWFCSWV zv~{Cs(J|G0vXdg$^Hn;^F)@%~y|(OVo45y?FIufy%{BDZA5bM{Bg0#fL`J&R1M+ZcVwYcCw~+7M(l$ zQs^#z*}h$ZKhC7~@;ggCVhVk`_MY&%vz$INYi@&`JSGpsGHxHAINt|;;+-f8N<6~5~AaFBMFR}cT;dic8BBt>qV za|KDyZKh;y90=<-Enc1^S(gp!A#Ek!p{C6T+L^7}y10j0Cm-)Yy}R2F+of^D99`m{ zwL2zF&DwkZvKT)0Z`$cpD2yqC;FzEM?(~v=PU@=2=VOXz z+f6NgOp;4OCD1B`fk%_$fX6>aU>5*5iLIoJ^yv{IQAFC7CY)Vx-|at&$8=n(UQV<`vt)Vz>pMPg3a;eL1L&>4uiMomJrQc88`Bqi(S zYwFw@Q;zqS1D)44&NChH;xxR3>vsj~&fYbzNeZsiS-;~&SJUTCGaTa@_j8XU?f z3CTAaBkt#0=U-5yl-RV*iJmSn!qBDG=tuXLT9sAJWRs8Mvt`zd zsDW~)3TcYmIW~QuyfyH=`;%@^y1d7T>&%I0$?2xCt8!QLjpYz#zq#>MS51V)tE?-# zE7IUWX=1gJPOZ*sNYi<>+O+MfK~mO%>%z(q`P&+k`?|7r^t&i_S;rO$4}(woV99iA z&fxVE$wTsM@#g$`Ysqy*M(om*Pp8Bdxj*$27nJGNXm^sN#yT=JtZISDCn|h{^A^q>lHY7~?qANP>0R-dR%TYI+bqDY@Y;5O5Y>eVH``K^Y^){OjI z`)9F5s(s7)8&urO-I@fU@$jxToXg}t)X2)FlDNE;?uuT2~#`xUQ# z(#u5eyK6}$2HqIwW%sTl6{5O+XYz!8`{-e%@a72Fbm$*G?w;=Xe#dK!luc(_^YO`UCBMEgX{7YF%Tmo-Fml2_ zyRL}u^pWhtyMNf1^TfN*ZOsPG%D)Il9C}4L8Tw0(T0>`N^AD6xn+(0B29>FOHX9;K zAY2o7Yr|fOY)`%=JWQg4a@>@Wrt)!6Hm%90dn)~9YicTsZapX0`N3}(z=*Ms{Ib?c zKho>puveNCsE@gHWs}#gwY#o5_MEgj3&@fl>Ldpf7@+fSDW@0>N7FBgdzf zjDi=ZBkLEolWSX@g)Pt2`p#=iQ!?Ir)=wKe=sDbHqvz4v#oU}cMv4nry7yeem$&x* z>=#{9uPCYPZTc0j#IEKP`Mh%87@hv=yvcQ2m0DIT7)#*_qc3W$hBDk%yxLYq02$4M z%RIOw+F@00^M|92j#eMX{!7->-iq95K==KZ8PQ{|Fcyr{hGDfvkCDBVWOMfIaq`s( zAI8c3j?3eb<=*NwzxnHuYV$WUUN&VeP6A6BorcD&fme&v>x1j3A&){Ge`9EX=DNRk zyqr~E=`OQ`v9f{h`Ua`KKiIS-jQN$iMe&>43sVKt4}+#aEbtR1>D5RZ5F(Oa_6G#= zhtIB2eyjPVuYsM7!Kp8ORAg$gd9X>pwcsRS%m73g(p=%!d>?bnfBE(A(2!{e;ZvEm zXs>#bL}aYhwZ38=i1=IAPlW$HvGn$YdBado5;iiN6SV(&>aW*mwaQK(cjHOCKIp^- z)+MNkwj0EslzR%(KxSIvQaSJv{}g|3?6d7lH>ed;5r5}N`b}}#sqoswas9KtiUG^? zm5@zVZ+%7OTkvcdM%l0%l`Y+nHwc(G()GF_i$B(*Vkj@`C*!ARc|hk3>|n}nj%C`# znStu~t3lU@k!&U<@frLdm||rC18KUt-~+a%wpm0NYe*stf6sTQX|P*?(;u^~7B785 z=V1h6HT6}P!jzu)Yhxr~qRw&=mhI6-eQMST91#Ocmj*5XlZbz@hHICs-zom^=bXCW2Gve5iKSCmIjI_{sjL@ zU*xJja^yn2I))_x7{3bnph(QA%jioKlcD|CUrdo{geucpUsTgI;0<6R{eg$rhNBUM z4~M3^J4$ad(QYMZOZ>gAr~s>!-k`9l4yrA}cY|D8BKQaQL}bM=#Hin5qrEuVnDEh| zvM@u_d)#9l!#iwO2CIBVmR>O0jTwogeL{F!612kJN8UrAqdV>;m}&6+*i)%{p*|36+oJlxVEA6CY0s4f2v4* zk;WWq(w7>v8xb1e-$L9$@6yeoXih{S^b|rX?Bzu)TcSbRD%Mah+KooPlh>F? zNu(ganad5r4>iWQ4U$M3f{aut-5eXR2Oh&$O!*Wq|sT?MlZ zT-s|`jcF6w3tXCtd3|g8Na`byK6?zbYp;@ag6@Og+eF(JCVla^DIKBq!q!I8Yp49_ zF7#V~%7h}DE$RD6^Gzp{{(7ditn?(7IsaO^HPzW4A*hF-V`5cquYlK{xF=DjUrNe|-x1)%nbZ^T+VbXsqyX^^x~ab4F~hf+ zZ7d?99gF5+rAupU;TM)}v{%~t2k>;JtzCxh=J0SB`4+CA&m?VQ)Sbt+(l<6My+MfX zR?w8h({OMdH|a~F+DoZ)uOi%^J}i^A0}aXKxgCaD4dwNhd?QE`j2ZX~b=%FNzeL#| z{zj0l5oYf1q&X$)OPDTHRo;2@E6^AW9?ux+0a#Z1^cC+C;77laMJf&PYN|mzrA_<- ztTvdg#afSf2OpndTS!yWuXH(KLojs>Z{9tmtz%Cnei;=SPM^Sz4RHmY7K|=k_DMEy zho%b|2hK_-aRu1;zfAh_>P5oVQr4N(kw?l@hVuTW0&vj!Go5w?jc(}ufPXw@V}U^| z8YGFT0p)Zx=gXif;tlQVDEWDpm-HKiKK+9+hx`_PFNvqLm%Erpx&GqNRK{!6f%lN_ zV&rS#b7T-&YLM@EY%d5qOr5OVhHM~o-$KiC^3-nTSQAS5$zwnMQNY4R5mii|PMxot z$Ug;g_niw``RVY6Pudc0eQ;^7L2V<=Z46>5%Dtp*lmBkg#kP>dZqnVx&$aSmGx1fX zOZsxcyQ}M zossornKw-(p#WbKGbY_AD6Y7Lc}Q741FyF8jT~Y zb$KS;EqR7&w+K0lRN1aLa*gE^lw8R-A)Tv)68`5^LV-#Xi`~KVIn{Dhjzw-Ram&>c z_}F(8AC)5$ijIj|N5uEC$MF(Xs(V)XUW$q1dLg@mSaXgdZ1(#F-`lE`6iv4`7E%*? zQjTky)Wqw#TTV$R5yqwo=`*C}+Ioy3@@Pu=pggeH=RGL0RXsKdOP2NTrR zwGKbMdsGfeaG#OCc}ueIMESGwF|Xv*IzI$XPpx}8GFjC7Nn4%?ihJo5eO_lB_Y=hg zbsDh1<7$H1Cf1&L?)Fh!qiL>XVyJd5r>s;LZgtT+=!JPDS z@j*H2Ir)(@-E9ckmV8=%Qh3pAd6rOoPBtgx|In}`XLK{ubCzd1d%j4>o+iD_5gv(C z?U!D{L1+5UiSgTV+ch#j-21a!r9?JF*k9fIxpC0SmqHopgi%tWD_=4@>o}5@C#2;k z+3#l;QLt>$#1fI=ZerFKRz8>7r<7~cNowkwNQw%H>F%aM329O@zXt{9<$y%@c`_kZEH)lopw72>^ z$Zg*=A={^eM`+X2ax1^WOLA&r(Iwd)_uy#9q$J-@>}0NbbQoUGx3js^z{`fN{a(A} z?n7RyQqM$p=Wu&Y(Pi15^V(h0@bLqwn?1o%!Lz?#e>bjzAI$ay8d1i&viy9(FTtMY_#uzljQ z6J7gG`C#gnJ}oiI+0TP|?PpKOo)aZ$D-nivL?{p=r%*pY`A_ph% zGqd-6mz$9XK2LJX&2GI>Jq|r+rjGb}0=z%+`nTMX_V?zs(owR^wpc4J_OP!UAV%4X zJFTVJr7a!xWAI;Y*&~7Ld(I@Li!ndde4~z;_gT{EF;ngNFT~jMey-bN?P))rM#2la zjk}VlucG{=N(XQ4StmiD_~>?G@jB06C%C401O-a#CG!jr-d)iA7r9D)e`SJwy+=FU#%Qr zH$M2(GpOKxuC(sMUu?q(aukHPwBBHNV#z|uVB2QSjrYlAZ_7&i*%$7W z8I97mtXk|>;$CHUs)JUW^Ixc|gLa%6w8nnu@2YF<$0L4}NBgsEV$VtYUB2!tx+jls zl>NJWFt0?cpU|j8T|c$tm3#fzI zy3rVU`eCfMe~Ge5JJZ_i&E7vqM4Y1r_PUfB6{MhB zzR&1kij%xAG%8WNFLwBciaUEZX}`VOq?!k=5B++l<5r`hodI zpAqmx4$5nt-`|yx?LM?~PKo#`A^WxR)o<&+a2|g2%L~Q!*xzyX@Y4fN{`k88(SR?H zP?!rx>_t7l^nCNnKjK>?u9^43ocurKcYh2M-+gG5o+th5ueiVS$SE+prN$+yTQ2|J zZKlprj)qT2<8Ps|*Mk1nf4W%Vn5A*rO>H=ucFZ1mwnUSD<$L?s3{~13_ul=zqcQE2 zo^rQGm7K!dNPqhXh!4WRse|v&D=A3=))|Zxsld|0wkCOLlaNQ_Prx#gs?A5>3sRDX97 zzdmEnZ_de|ex5pa%R@a~_hozFg0UBxhJO=1EVce{x7;?MM9?sw<$Bu_l(pUtrIOpi ze+_*>%Ex`YJG_i~y~7?@RPQqAmCNQy3H3j%x${e4|Pk_0tYWgFYG)dt=BK-^AV|w#m&A z-+iE8aqnE|F{<)&x5b#?`s^X}w&*qsGmN%30w*SsuI($+RE`dhY( z;=g}iR9U=}?c2QH$r~G&+|br%9>)2;h)eZdt*_7Q3+z>u|JywLLu&8Gq=`H@5ho!#Ew$M@YhT#-0d5Qe5h$k_!V%+GnpAqep#eR zYSTpIHnZzTHO{eG(0)!wv7xM0ziKvw_)oj1=m-0lH|p0OGbhp&-A}<)2X{a%S-%Fm zJnp3@jkW;V>kN}K%X z2Pu~O+C}FBvIxe%f*Du{Fg-6bGsV_s)z8A18D(}6_n1m~r!%7j&NkgczoVE5q<)+z z2KzYX3?>b;0HT-x>Ke^QFe?G~V(|TaKoYOmfxDK3HU;>tl76P7KKa_n>-|u)4{2r* z*~B0^kuJ0gvsu#i@6Rd}Ogh1=H|DxoOncQ<;1qNF^%wWBM1UBOBu{~h?X zjsCk1)Dly^E!9#hgdLzF=21wEPuT{4eFHH2y~U*DDq=2796%bB1ftJ%lbGGYQw*Ba zU0mh1Sd^ps%8LwLEG_GI32Q4i2k*+=qDH_Zj3FN`&+h{5 z|7)6RLi>lGn1Hn*sN~|ezV)5Yw$Wl)AyvU(6^4RjjxF$YIjAq8|Epr z4UbQW+lM(z`DfNE)!sFyjx!0Hhgl3?+waio$Sj`p8=}9RaGm_e0TYG2t_^ZT87J@P zE+9j+0e3~peS~-){ElVXwHT#Z?!H^mT)^X2q$?ZYsjs~K*_)NNe^YcVvW@(;cjZ}d z(^r4)L6df;GD;P3aE>IVlrxC3;2VR0o+9iv890G`MFAJ|Lz4}>re%mDERKBcVjm+c zB;Fv_mvxE~_#e_t68%@kqA~FlX^AFL2+W^tO!_M9^}-ulXxrjgqXO_}VN zeu5l5?=6emKYhf-MF!CtjaMVevVr*N9qWlU$VENUH$Q@wgRnpRXzBPVw(#;sLwc>E zIEh<(i)$o2zC4Zkqy5|+hNkkgr@nEw3iaiSuw2|wS;!?8edF{!RT2wndwXddQOFf! z>Z>2E=+$o`14mZ*i|c5*@?}|HLBBZ*jUb)>pAXRtz48^`v^D4}fOp%`k%u6+&{Ups zKY8a6$tTdx;Lqj3wJR}3QL!xj#~7ZyqOEAF9_Ps{{&uMNBNh3t?$B2Ud-O%a0}Tcm zS4GOKP{Dhk>nMRUPYxD8Z)_^Y!TTx4fU%)5{Uc5U{>N90KIJRE9F5lYJR9#xcZYoU zk8LJO>eUi!D%ixod%Zi%JLeJ_zV9MMg$U$}yaKuGe9%`_MZ}!a z)$?NyByoM3LDz1#hQEcVl*WEjMeJB^5ycEt>!5RHB}sJbPW@57=iqIST|)#Pl|-NM zXyK6c`0Lc;&3>YmKPzC=vkRD!@VC}|(l@HDAF~V!H0y^cZV}frHddU0_th$SiF(N8 z^c1wbH#iv4s&se2=I_c2nW23-aZ&J*Y{UkZ2(z&})8^dpX8`7V^7_SU)V0+p+eGt` ztO7#ATX=KqL84@mb$=7oNLmck|#q zgxOrs#e)<%#BF>^{rf=&vhf-`1uGQsU5~P26J^n~k=7FGcn^Kg?CPTB4_@LK{rT?l z9N=4nOpIWxqwf1c(@XN+)`>FX-UOXd;9i7jeiI(n;!q;xok~8fzsV4020F%O{qV;# z`k4;EHN{_qeSr$C3y;U5ZSPZs@{;ZoPlIS|;SA;|G`MK?wN;xm@_7+p7mw&%0+BWh!`0^bqbl@xa&M2->FSE$+0W@u?Mp?;U z(>}k#q~Puk4PA(@GmxH`)7V!9H{Ag0cUA_l$FF1;c`oBW^*Hf!qK7~{ z#Cz(ZQBV4Fa7+h&+EX;U^tTT1-TkptdmIIC{z@nDdT&9uso(E@k+Mb6_Kz&=p&yR? z;ZHwtZb*6I?AuRNiAG+*Refx4u_vU0c(j^+8hnrDd5i7j$M1y*1>LU=SS6w|sanw* z{?gn`jd?gL5$o$cZWlyPw#%S1hZJ1{{OEeY>wr>?+vzlfXI2v2xa zPTYi!73USf`3TW$Xm5SziU+)Hj^P(TEKWCzf!!*Jvh_SfLwL9D-3$%;cM?FMm3QX6ezrQdw9*sCSg5kv; z>VCK_Qhzs~E_6KerZ4D$EFu@#mCFdKO5brZ0%1FgY{YCZ=x;myr2q?#Pg)~?(E1By zn~V7yUM!)knZTDxqK@dFYxp9c13BkBNz&h`45u#(jh94x8Ds@{8UzhAZ~gGz9+ul3OIb77pg z!oR>2#+@`^Vu^Fbme+TT^dH6~;sXB={Aj+TtlHyV5#LZYc(I(cWopolzmP;y9{iym z_K{B?!Xa1R#na=1uYPFxW-jA)9h;cp9j)&&`R7j$ag7e(>)t-%2=bTG)S|EW4{poq z3^^ge%zgjgL6`sEN{Tk?`|nE1 ze|_Npf32jLUHPh^tkbQ?wgizYd9yoODj%mUr^IQ?DH#Pv&4FV%M;?qEnSs8b`-1n85fBs8>V~N9K@Ql6t|bHC~dm6esSr$ z4av4fStZjs*>Xpfo5U5n<>WYpm-n2bjOAK}?>3eXh`ysrw$hc9ejrUvYU*o_OF!Y; zEn~w>IVDSr9Kc!$EGf*DCOFmU zL6e-tqO$E3tCr?#xRI=#?RZC%b?ceR2z$7%CMV&zTm zi>6DPmjS#btJoc3EMO(&bB(m^P+#5VRNz68yH$-{oM(yL6Bkvs=KgDYa^--y?0NE` z`y?|z+%r!;^6Ksxo`48B8)bGRD|LR*R#F1=g%zE3kpo1%farT?&E`1HuGmuc=2F0- z8PT@XkTNlsyA4pKt8v957UqC2Fn>Yp%{cc0c~4f+g8BhjB@5(YXSx~?;B?KE@8s26 zDBX`sTPU03)V%oLvpf7?e5kLaJc=t=C_Tw4F*lrQ+jkERI*ZRWj4qJcC74gvTO>Cw z>X;X9bEYjy3}DHzQKl0{{T)}ZNHRNi+Z!*7OII4(ii#I$1#>qRrVLdvd-3#xxe_-N zm+^}_+QciK6xMi+p>a{U$>t(xwa2q>%jR?}mdmw?_H61KpMJinEiTHlS>uchA^CsP zUzPK+j<;_f^s!M}NpUP`fmoMo8MbQd63LdTE|DYR-E&&i*qx!Yt`%RhL<*n^%u&M? zx4DiKdNDQn^1j?Q^@pn+{mu6`Uu=7?WM5Ld~|bJXQ!9or>6Q04Y5AE;8tc%^e^oxiqj57fwaz4l98Y;pOW?LDmh z-MCb9R~zCb_x3CPq_u7G1JTVkW1!k?fFFg^3y5>9fNPL3x;<+E7SmIag z&RABn!zwwT+jzf0ETXM~?FFmk21pDoxbV8P_CwJsT*c~O+qM$F%niep>6y0qzlkB0 zm;Hupd#AgHZ1c-sU1MNe!D{)7-B(uE*tH=^l~a!V<~A3eXvUG1;qZRnCzT;lJlwCAK@okpNC_5$hb7l#)eHwQ#FStpr0{jSPa zde2@bSI+CNjJIVTye-{|FIxA}uXR{wxihE!dij35deUKD_E)Z4cO}5TZ&>jQ{ZYX$ z6QAz?{g+84CkCtGwv+XLwFhMH%avYT{@q>wO{MH#t0Zc@0qvykly}c&o2N#<8m!9y zu1Z$r|G-a9vWFL|Hpj_!x%5ZHxn`HPk`kJ!%0}9vzb!B-C3{GCrhA%~?Lq;BKU92e z37-Az-VM^#8RZ)&8)W0kV<|Ij-Ex9w1)R*EFSX0aWQnDLdjou;lhcYi+w3e39vLt> zN95Vwrz?3?8boc3H|Ia(kpZws)o#%Hg>Tt*cdo7QS`~lWp|@4$2gDU6&rkMwpw6%7 zA4NYykGLSF0p-x@c0v8N#bROnjScq}B9CH`F%AhyBvy*1mt16f|B%I&!=any%9(LI zc;PeT{^9`F_0%P`sIw);$ggtc)YwOx<#tUTwOVG&Dpr?u?C?mHJC8_z@QE>f)o06X zhwifI*uXt-MIV2V+MFd}E6sU#m6h~8zpb?8ci*zgw$^X9Y}S@osDLfL7!nR`YLJN_y*ZqrJUbB|9$;*X#UjpYKZ#j)Dh{Tz(}ta zZSgNw3be8nn7vwUlVt6w}&C23@a%q)gNtMrj<8f z{%;*Vvvqr{%2RE$%+FRfC|0%vgx^*2Y;h&I(&`3g<+N9k$EnESkS-$bvy?_}7&B%SEpr*N_6tn zjzYBKnC%G_cW95a+vYRu>F$$Nzj(UmY=fd5dw*`E)o3K#E^1a|Cw*b-opL~@VLQ_o z#b>+sZ;D~$jZ1qV4qW$ltvp~pc~@9(`g0WJmnmgO9J;%3nD~l;sl!*cm6LW=dI$p# z(+U0Hn3q+sOMbFvnDX@>4Wd{Z@>kG9WvR`MynvP?ul$QeS6fz8$~S?-5iIkyHS^Q| zy1V8}>0N`O)ks%i?eA=_o_wiEzxz9z$WnRL`Kc-y8q!Yb(@V_tvy|+k=7tdN5t23h zm@>LQ5)%0;_gK@&vxS^}d&(yvOQ{#21n!p2EfV-RUGrFW$=WSdTr^$t=GU3x|MEBY z4*^d1Zn@H=_q!#Rz1*IYw#mTRkRLf@X|KBebmA{g*|KKu;U_4YHo5t!+g1I`vwO52 zWtv=;aY(B9b(SjE{{E@k!yMjUIcugHJi9SVnXc8jDrb7Cn`GPB)Ve_MoxGOzI{xt3?KP<1Wrq6yxzmiw;nt4FQJL0-AF73c|^V(-_DKjAd0EH`fb3+!KKui z@MO4X?(y`egYx6o&ko8%-o892nZ*dDIKcDUq`Ed|)FIhCWA{<8q|<3=<)3k{Sh+K+ zVfG=}Ce)m}b1SDKnSuKb$@3egt=3jj@~ZmIt(xk4%%YuinNi+oKqFg#K0pl4U>g&5 zQ6dv`CJ2LZGcOSQ$BSxAPU87V50JcGwY4}(_f7}%H=cx>t%&+QH|=l!+Y-(xkl=Uz z>a`aPPZO8v&tE^Y0DjKJkIa-bZ7R6L=wKll0z4m>NDK;J(SeLB5f_DVlfG|_(tY32 zghPWkT^21DfBj4#MPU-N2W)Lte1}<7;#>%Zo{3DCQh-OXB&LU=O=Y$=n_1ps{FN~% zY4jzNF!R}7H zw)d|K?v>yT#rCg?78-aa>jDM3C|S19n_!Jz!5MD$X zYM=?^rX>9=OE~GYy{fM<6ifUA4Ar7*qH6gXqH2$Bk|0SQQ<yV zs7LT+61EK!hWVQG^?_Z7Tic7+10jiMUAmIN7IOVH&5CW&T;l#6djjQrbQwA6QMx3G z_~@;F4Kn>nI5U3uS`NkxBzPvY5Tx%xu8kds8JdJPl<*srZzTR2nC{@-jrk9ZT7tif zH!_PI+#fu+N8m=8ukWG!mNLzT&Ym=`euTFm97VZU-VzPyFjjDgTRpmTRp(J%+5s>_ zG0VX3_CyZp#ZFMhm89EDxrY;emV9BM_H2dzITrKgam7((iP37cH#-!1igrp_-(Kd zF6{fHs~cB(ey<(=B1{ZrdkOqh>U@89G)I51qCYjGw|2e8j6^e?4A?L1%m&K;1fD;}oU4iq5kCw(?XW)_ zE7j0iIjn-bf)9LMzHQ(W@)`gT5sg#9F^%k7S}9 zb=Vp^j578j&9~mA=P#e&Z%*18l;@nbd2Ava<>Fbe+@h(YJ zrre!~o4*ZtAn31 zsKjY|$dho~c2SN>rCR0y%9=y`Mc`gXFn)k*BK+)uokadQ@R4IPA_O}R`T}qt1($Yq zWg&fe0^uEirwbJx*tJQsh_EU6YhvaAe}wwlfqeo03~)Rleh_ezu~F2C?q_NH(6NvB zThz67-Xop(d%&U)*H^n|5En<-D*Q*V4`Y@AH`+yd=--SR(G?lUz(LAc8$Mhm&-?JK zY%}0O;p1gVj3He!;A4QDK;3^z9SPA!F><}zmHyU}B^5w@~XG$93H zoX1iy8Xdw?jZc{f4GS-o>RGzWNJe*)vbBsQyvt+EcbBmk3!8YcRXo{X z)L)_v%}*8$p1L_P^-7Bcv#6n^wHS-PFVk2oRvb+g~MWynWyN=8>RAd)X2-V%^#$ieVe?&sGmG7V`8~D2i25Wl)6N8WI{- zj+{BlianlnG&O5Ecg;j;VECcX{CTwyOLwg!mYUH;tqqp9FIpSi#_|e>ftKW0LLI7) zbe|hdkKaGv)FAl`I9unWF+Ww*$Z;!7Cr&xebaJN()6=-0LS1UTpJ8%PQK;jmGGS}t zs641Ox_*k5(#k6_VfERGRo@}?DlcM_VvVsz>0{0XnZ%9Y@B+(NZ$PuYZ)3597PS$- z7)z{icZ{yKf~R;D!-JJe-DQ3cb%+KQsctvR=A{gBJIafOz_ulW;l=?T-46+ zuMyb)7#Yud$9d-~a+rdGHZ0$rWTBJd0jJGrLW(qMGKq|P#rPdOL=#Sk`Ww{ zVo6y>ZM5h_i#A4iHrLE~0tx=(r@w zSaiO=1^H-hF_yG%8Y_f!GOC3%W0_*8B1J8U4*f*xA#D$>y6#d_>fWFjB1U@^7?oC* zGI?XY)mF6S4x&ooGNrY2D5bTq9Pxn)MZRdGQkSNVmi9#%L!-*Ki3v-;*oIq~f_Hf$ zaZNw+Y};Vx%==!j%+l{qN5e3OXlLq4&sDUv9kjUHDPe#mnUcP8c*b<%>eu!;lB07c zS`jUVS&Hh>EG&Cj`4(ZmYKPW4-AxUtQr#qr%OFL6q8QpH`bxKXqfAJOuOix;T%Ac0 z)mcbszDnmVy+2VzTSxH^&VkOc-N>a&TVuiHF7!~Hd748ghTaoC;ooYqujrOEtDtqi zFo)Vrn!o>8nV|bAT?_&~d0QL~rMuPzbsuahGWD>~X<4P3GY=;87#daxjL7fQ)lzu5 zf?W!C_N-wn=_0aC+a2^<9Gds&Q1SJ68(t*el(LDNTJ4tJTH2cLB{ z^xIp|$6|DgzLr-HuJ(nGjC;m>)hUb>s6@}@ikKdTtiUIwYgnsrWT{&}=}5-4exl!~ z7I{ROq_+;Gza<<g-g+{FpcS1A=3Xq9|!JKXQ%37jg5TVX=vaCoGbWr*G== zBx9h`eV{O=Umqy>_@qdoQO-e0XL$r|NB*ioYr^hiW>-+1ma!Go!IsGf+8YXH9_R#L zT|EqovK&eO&fFB0ueh{6ITK_Q5==Rfk^n0tQL$;a<4MWA|Ej>j1 z&gEiQSY)pn#-bi#mqb}CN6bC@NXMaik149>hB-NkFcfvUSw^~6!9DyC4fT@p7Av_b#rrzU-E*X=i=!?5x7@E!q_DgN&v#PAwb>s`3$jD=I~s1P z-tKJ4QBfO?(s~&rXGQlYYEg_f73Pc3it6YyCU>tf=h!4L7M}MO2}W0MgOplPjI(4p zlyQF>PgM_xq1`_6riEqqKKgT@BCbJ|$W6N0G*)Z%>&D+SITQvAckdH3dKoP97n4`7 zjCLPca;~;BNRunlwnCMD?Y8AJOQuGJG{Zy9xkuT>eG>|b2dh5nBOZccqGek}n$eCQ z`-tEnp_AxA`-lO?l0L!jj1?zu*qBh}xrx5bY;yG#FXA4;y5x4YlpN$GyH_i?%_-@;gN`L#B(*A0R6|wd>9v=W)l1L9 zq+H9bay)FEM~7>EGbY{OSrrCL;fK-c1P6tfW34YO<)JR?mAt70-{tyDyylys+_FeD8~EmLXY zp(cjP(+CWnyL(z*4P#V)slX`a1i$j+38dVqom>O&&IuEk!_k!AYRt}IR7}bTQ2>#k%F=p@s($MT4u&9yQ;a-%~E<7Ju*qq;s@OE zZC+|Isu%chjL@>9I7PH?6(82wnC7P#YMasq8gf^)_@t}3xSf#F{iytm&j%W6czP#U zJPQYk&sAk8Jkx~>76cRmbcJe(8Yup3L z=QxIBq7DE2RDwP~=!3lmvp9@726;^a{v`fCF~>0tF$`3qgaRJIJj7iOB%`ngVKjvz zN%XmXDDf*PpPBf^&=ElRRQ%f9Ef3QH^Ag}r*e#%?8*tr8W5U+-I`@HnPW15RUx{qiySD zeyA&FnE&evPG}c($g~S~35Gd~u9TdP-4k5w^b!}KG#dXZ-1;OB_Y2$$urn~-VBkz_ z>P56CyaJU|0e5#yFH9MP?I*&ACaQ7m;ra(%? zA5QtIf#V78NyKpuT`VX6ak#Zf*k{1{VTR(?CfMf*-%mVXVi>lzm1G*8kMMgylXfY~ z7{YLhJ}{P@>LQQ4f5X3?^tt4l3%nnu2Vq??YpJJ>#HqN)V%T*l_Fx|YHUX);N&E=H z-h+27;R`Vl#I?tMg4u{^j9-vXRp63wYLmx_7;OUF68k#gb+9!>pQboog?l6>no631 z-5Xk4L#sA<*AzhE!=kU2qEo0+}cGp+IG3a zRM=M1YD&~{$WAZ}QQ_BaV8#>n3|xb#&knf1!_aYypTM~gvmf_f!fHd)F>u8LdzCOv zaXp3bNZbl(Hb<>rX$)wPkrL@algkr$HZfrQovscp9J4Dg|T)?57!%u@5yUE z@!ybc4)%7;9Ky=U`i#Q8nRsn$o2CGNiQNiYQ}~?0J&*Xg zn2D6#7ke8flRUKZFngiDAuu+KKlKw29qG_@i}YoPt4rMtAl*dbFJL;8rUvQT5dSas zkKnmY_*;yduo{@&xXXg)4`9E7h6cb5!~Gfd4&t_8>O;FHVRvzlAv_cM>tX*)o>j5q zG&km7@LU4NaClH3e>HeF2|iZ>T)OxvQEg1we> z`*CZ>LlUsRAb)n93C{KlnfN>43kL6K+(Z1475paf+#x=auuGV}&@%*oCUJ*|>jj=% zjDfi+fK*8PeT{ha0e)fj3O!1@3l~NmF!bNwxkF+7ckD%O7@rMDM1fFuZsWS0|cz##K2Esn|rcSgr zN?ZsyP80tF^hDzh2gXFWi?Bfa{jjx5i*AD3hOlUgb8RK@J#l{n+l}}ya9_Ya2A?~V z|DRgpAgmGA4e~QkejDiq;9p98oghwAUMqxa%D+aGhn;=;5utDJ{{U<^Ek9ryW8Wt( z8&gF3>DbzKMoqa~KwMM8?qT;Md&*uqbX_9i9ZVui%GYLysr>95qwifn+ohZ;yaRO3AT-TtpkjF|)zDAO9)(qpzvo)1=u-9qfhw9Dfs&q46l`A7f?!_a1u|_EPe+ z;_i>^rI6+#^n3@tGw{wy{36_EF<*nL0r8rWdkb{+1n1|3Z^!OOxpx7326sDPdg5Mz z=}f%#>QfF3vkB7{t|lSxOEDJQo|s>O(f%~G zMT@HN{QzEV!DBCVx1KQVSk4Q|*AM*9FsS*&ADG_Icoe@8*jAVkm~Q0%j`U}VKZyAl zm{{ywXnF~*Q~V?RL;Y%vFa&E5X}S|%4_Yq}UJo8?3hLR!9njLj=k3_qg^DMjQM)KD z2%{}9q?2|g`MdBNN#hOeR_L4rpE?kpsL2WGv_*~*U|$eE6}u~GewDa02FX37-3qQ#z|F?J zA3U=uXCh%Kz&0m5h49Y!*TaWX*vs%Q#Q5Ug0sYmXs|9dz@a7I-ohtKx4gS8k4->wI zGXIQwDCPZM#a($^6W8{inG7%qixZX*6m=3H1VuhmD^=UFTCJ!7+-etx zIATDgfYhZAEueKPw&>G}OZy^4Tuaesty3oo_cX{B z1LqLz*@5zr>5!X{4i9S{9%(m0HW9pS$nPAm{E$Z>;%Zz6Tx=F8OZAt!Y;cm`dc~Zkb^=n|R0Bso7>jY^|qVF#T zod`Yq=8YV--i19EkhadQkND5vFGYUuf+vD)1JUok2aiTsXkgrjz7OoRzr<(?aBd*J z6n*|6cyUPgHR4*}U|CQ6iqHYvDX2&LK?;B1C4sjGdV>%jg7hYY7U=v9c65OL62T8) z4e~#Ma@>XPpOJPWY*&DH3%WLhaHNR`mKrhjP~)8g)A02yKLB(Fg8c~oCWH@wjbH8%M?oj!It%fSVYdY3w|}1|4QczMy*Gmn zg=`&s>Uk_YTYy!8cp2pL(O<4%Y}<)z1IqOq^11?B%)onqz@V-=QLl?&n;YooQMUgA zj|0Xj=rgz)P&N)U-sed4Mf@XR|Autlz*-EwBapR0hXUSIV7v$U3GgN(ej0h%kj@?Q ziO~5Q0zUUbxFTKw*?$o1Kjqtkv@ZZF1-ezRa|`l1kF;+={sr`x!cTty&4ZqUkcIT_ z$csn%kC9G>>x*c668s~O?*qmzT+agY0P;Emej~!4fw2&_#ew$~zn zb#*5Q^9k@WfpHn>4?*@GWI1TpyU>w976|*+fxi{<45a%f^frU{E#&y62yp{tY=e9? z@;V8g8)UOUzl|^hGIwBH1HA&eo{%pD{?CYig|fVg>rV)mfUQQJEZSU$GeTUG9^h1Fy1MLm$T%_?p-qEmW8u&YxJHW+e>XAslrpRuasrIKz&X3|cV}SY2 z|L(W$u+{!adiUi7!xOG}Ix24^m;|1Z*?1f(Bv~s@tMvJjlvYZ9f_II!<$En{6>&^H z6R)>;Z)l~lmnxZDN6GftTq1dcN2W&9_q@$@gw5c!uue4KuFdUv!pI65TIqX~8Lc;Z zSJcs}VMoO;@J6ih>9FzD#AMFkS8H|&&osEtXf^sD>2%Qu29FGGRKOXtD_f=Td@V)P z&%4ES#1Yafhv5US>sQ5IZ1XbMMh&=Iw`xFVb)UEIi8xAOHLx{ofzCv*WlUVSMY_gJ zvjfP&ghqpR;RX|>-eVb?((b+CgrMT<#EA~D1C9d{Ho9K6jDL(#hL1i zfHSiThHfT3y-lO~{Lqx{A6krI(%07%-&n__H<yZTeNi&$ zJtMXK8J9uHWv3?Z*t=pEeRNPpy<{p~=C_+j9qiLaO*_>7?#Fyc_(^uP?pKX$Z);Wf zteDk7EtD{OYuu2zY1E9%xxNRExJ2ZXot{~2a6feZSj3W}<6geI*Z;G-$08^HGA@|7 zy53f7(5z6Lkvx+u|2)uDyL@dzae8@`J9{HtYgN-3Q#&h~8mp<2*F7?oTcjt)H%0un zYJ66Bp6unBu0uDT9Zz4V3((Ua^sfw9A&s5n_N9KM`h9Z3?91GHXG>ipKhSDkaMUv-H>l5)8?#0n`F_oUw?%;*y*;EM zz$>RHRcM!Y=uV6&$zAt(<#k<0OiQ82zb0tY_etAhFN|qkWZ^f(W{w_dx#*?Y(9r*Y zZ>adljglq7otq+P6Wc0&XKA};z@3U!gRaN)S$1yA=6}^~e^wxPmn;9=Jk1vR+?|c@ z=-Tz~|9Y|GIUgu12jhI|HAyqx9@1U{f=*DU< zY161re_^d&Ql)f_)nrkZ6(&v&V5`(|gQiRSq@1s5t4|;!Ey=~173%}e?ufr$cXo|= zVQJv^vqxvPN}pMlIdI^AnS@|Xe5o)jSm}2%Vf1viynO4{5be$}iI$eNRlXr%Q&Qt5 z)l7W1c3}vYdeUY6izL@t7BXe#&f#RsxpnpD--~!%%)UbXHK0kV5*3OE*2sM}zLutV zldT>(HLDI3EOY?Vy91NMV zd{=Iw%hY4L{Pw-(VXY$A@=`C+v7=M+mwh$vKKY@=yPT6v1RM5`^DQrlN{Sl$%1ZBO;qj0}Bi z%D~v`d$!SWL4WBydt5JzDqEB78ay~4w4L`}y5VM~dfdiS>~Kc(OGZ}smW0zYe~#J^ z#?2}zeKF8CxnkoQ%dB}jHh%F*&d|!ZCSBZ~@zJ?c-=Dv5+^Zue**;vlt!VQvH(%8c zjc?g;XF#>*n%QwfFCX5JRJ$eYRK$HY;9Pk;^TAsLJuYK<@QIdvAL~4sOE((gEuF&- z>nCI-57rOd8a@0*Y5r?d1`8bDBKh!B5glLO_rl(7`*-I|VDY-Zua6Y$dp@;eZtB{z zgBo0gHtRgkvX;viZ?r}34XDnZ_2D?OS?0N~f5^NM6Ti89@n=7d_+Z}V+;6`5l{ip8 z$2foTFP~qzF?9qnc}t&vN138qGY$mb7&BR4ck)}4Fv8m-bitZ3{=0-G;nUkgi0=!> zyZkC!6Ls&W1^0-VW2jJFR56*dqF;&1t7UWWZi~5yYVa(`4L-1cr@0{LL>s$acWg*W z&YHX{S2?%*=wbODWgiw?lMOw1I_aa_b%!fAY%Vx>hBV|Yx)|6oaoCo&h0S@(hfX}* zq4z&@rf~kkt6}S;38B966(5Cfdt+jG;@6V%+C=5fNt-TDJ$~rIK`)%Y-$bP@S)*%g zR`31OrkvTY?!3JFQBmbX=7H#96 zSuj77AMi>|=(E|ELcRa$BmGx&@~6=rF6=zb`2NGvJ{>nRa?Hik1Df`IUH8+x)Ztft z-2Cs)+&=4^Gb?s|eP3nczXM&0{}FX<@cX~Cn?Lir;{KK)wTR+sitg@wNBLvMD}k4f z1pO63L!9m;d-$bc|OUkxUIbv26+-jEK4R}rYaZKS{V3sbO~AItC;?QaeU5cHfF7-Qg$}NqG^}@ZDnKdAZ@??4DW9mE?E^`#%@hZ_nFq( zxcymeDghQ-vT$OeW?f`FGn6>lT z?Ih~8nOFNZCi_Nza#q|YC&P{EjMo(@OT_p5#$QXxk2$9mMT)8d_NbJxqtBl$S(4p< zz&{h-y^{2IuVv4CH^7CYp8NUiJIjOJOvIR>3G_L=CHt>jnAFoKJ6F0w7p(MoQ4tqW z?ooVmRM1cDCq^5+7ngaIQMTZdV94;$t!s}xXSKU$G zvyK|{N{i=|k0z3}*;($KQva3JMW?z(-xrXi8}VKd5G*S&1Zia1?; zdfKf!vCVU)%kDOf``7qPLk%%y;0gVzmm`{_yDtinp|{6LiJ>oHv)o4dHId`}H1@sn z)XrD1b|CEc{8%&CH;xH#39KCmtS27s$YOo}aPtT2kB1wnSgSnT_``bT;RA83-yZHN zV{P|vgBI(Phdbq1vp(E#!Xo6NpI^IQw?zmRE?pKO&KTG?C3olAADr74Auh`~h7_<5 zW-w`$jDk{E)2zU@)1*bMU^qh4z+{$Vo1NsnDY;S4QdW*&l{5}^x-ua`%6Oi%uoP1x zu-h2I#2H!d3RVv^%~2wm*O-E{eVquMPP9Tg- z2+dH0!pa))pq(^?DKNM*20^2@vVzuF8iZ4KE((j7w(7^G8VP8m5@b1RvU>AW98K`v zW4D55;)4aEhH(+>76>f9(IFw@7?w^_GB7w^O%<_jI48s?Xu?Zvk!yUDDC%q6yCaAy0cLQCU<`N{yA15RLXtJhVUp%u3_g5Jp+Rz;J8N;?w5IYLMby~UIV-E@NkMJENkRsdK@(|3$X3Y^ zlM|HmEMa=MHOa&&h$NoSTa)+{3*$qB!tz(oXvf12r65lwL`6w@W)QE|Gh7i%GExiP z8xw*`z@s&_fkEG*7@|mRvO*UkXO+H0F{>cZtQ0*_V2{$$B5xDAH5${!$`$%5^r!CSkS4sttvb8^k|?-d8z)P@9~_)8y>>5aCL$;@YHx>7ek_B5u9G5^fltq z9TSI+1vP-N6cI@gWCdkn^cJa+QBrcHT7ft*G!e_=ccdf;Ugt&6kAfFhs;Lq*2_8j5*^54jK$xi9)4;k{YF$5~@hQ zZI}|&_9-E$^M%LL0b&oQ0{c)eM!=&l3`LKI{l~*R9z#8xHtf@deTuM85B4d+{#Xi+ zV;`Q6>2V6M3!TrQoH4NfFa=mS8ZJ*2k)aHBP5w^si40fFmP-`8xiP(ZXKQ0jYvmG? zu1&DD>Zm}eku{QL(@2HYY+@*MW*py;H6V$mnHf@mU)d@G%@otH(}!T%tW`!`dLYuZ zRxX~-Bvi7A;E75Y&swsXblazC!4XMiv)E{Fu{NvOB5yA~>*b!mG7n>r)w@9)TA7zP zTY>(|TMO}x)(Apsi%|rI zQa)|GteFh8<_PdIZ0#BZpTrnLC0>qWAh?UOT^XV|1|HQc4%JId%q`7gLDWnc_;bxMt%AnLEDx<*GLujeZANqhbD()bAlnqv zCMZ!F#;n)1F*Z5N)xqC`DzwcpZS~T`9FO9mUb^FTqIjZBxSg0vdXU~r2h-9<`2?Y* zFT+{Qr*t=YsU@Lx*w>fEoK^E4yG7tAk)n>!`?S$&O2@AWO4PXt?M9|!m`KVL^K3&5 zSIL%0x9`cbiK~a@l&}iHT*7qh3o;U;E6tc%D}CZIq2M@HJ7&Dtd@);s#uPQi7)XpQ zw|o`N;trZL$tgnGAdTZWTZ|rU!StzItY>go|Ao2wN}@q*TjK+l;q!uZ9ASQ#N3+rXB5_;Mlpq#%+FB{GZ#=nl`Z`2(0nr?ZzGZJDo=PZ%1Un; zv)nDPl@f;vd0y&Uyrw}+3g%{U8$%dp8;Gg4n9~P+c=uO*NwllL*<#ykSyvrV`MJPs z7t0zY`Lwx#Q49;U1t@q9HS6JzIbRT2bc#yp2EvWU(Rof#(o5Sbb4<7+z?*SG0~g!a zpLjM=NAc#1geOhviB`HLF|`9f#%4&yEHJG+fllS|cS`3;EHTNCyT}sNWFR{;27j7k zIx4XrK*F*0?Lt$tm=G4*q%MLF;V!9TQwVOe!l+BDziRXetz@snz$!w$eG~fZtU&Wj zwO63bLbw&130(tRC&sYB#|xGc&7>%>rGZSP;TM?F@TD1zTLGb@eH+Ccm8lJ854a9~ zspVq~=nPa~d}D%|#Y1@WnV98n>ZE2;QHf^$fmqTkR`O;eN~n~J40NcME<(V_qYy-T zktgnlz=m9#bF zVoC?U`;wyq6=y_41hxSqy|jp_sWTHyq@Zb>^iwfQ=?t)39bBX^&Tb8Kg}dT5Cnmp; zrOa(YUWqx>3VTEAQK{E?b0SkMW}9(h2RC=G(q}C(Brht3kv_DJ6X0lG#i9m68K|+u z;@+)6K3d3YKsU@u)Ne2LuE26 z34gDC%D@~WQ@x4vN+m0$l&)i+rjb0}9}`7~MrxV6Y7;U(KEZ6%ak?eEXtXttz`V^- zItu-cuumRrC@(UlhU&=X*9kaetXsXpRTs)EN0o-l{l>y-+0;|W*G`Bs?D;w<2R3*P za8M3(P!4!d4t!9K3_v+@0OiO6)bDvj{hmkE?|DT1o=4R0c|`r5N7QgaR;LUI47jgW zF@b2H;WXnK@OyLkQIN`h7RfG)RLnDv=280*1p9=m#touG^CWr9)#8PKO(aw)XF;r9phC%HYL zSKRG}KJ*c~ZIaA3Nd+0u|C3QPK>Vxn59m*FdqO{doa$=(ut(^-hRN!+D#(C-U-aP5 zr}y;x1NxKPp3sYb>4rYsQ8NQ&7y7Co1NySp2X|Zu@%;n(liZ%r+t+sMGSQFFH+aeJ zN>q>m{o{VM2hNS_^9S@Nxjms@*xU_$#3S^UDKgs>6=Xm+m%MrU?=v}||0Cwt2gZo& z&)a+CliZ%r*WK-gjoU1@Q3?WY&!T4 z%%a_#^+|3|@aG!4!#muy%8K1vE2V-M8Ekn_zwzUvga44hliZ#%DEPwFSv&U8{E_{4 z)v`Nk6@-BQN}Zjy?Z6)$_DOC}@b~@&_{Sq7rU*ynXUaBbsvyI#ct3opV<5B-i_Tb2 zXzMP!bwzVjM$=r`<+&=zfOgH?b;;t4^@P@WtjnlPWjIQHvyhbWMWhN+;Jxr%S3GB| zN4zh^U9EErPSzONx)@dGmtvrK1$0Go#(F|4D3o+Xa|}i&;$>IjRgeKKDZVS3Gu9JY z`Vx!k)^V8OI45o?I)bCa-un7J)xC; z>E5-Zj=`n#d6}SBK?XE4CQ2uoGu9JY#XBBd(Hw)xEq~bqe-&gv!*QQ3XwFzqXyx0x zp*aSRPiD!QW~m?pT3O;`pxNhOd;fLDdP2Ln#?xsVZay6D@X1TEGcTzi1l;XEF6cvPkt5kNi&Kc_o zu8C*6S?BPHX1VN)Tm>QE20tw9~yzk00BwRbl- zhhIF%lvQM@AOxKAy}5QcXRIf<8wEby;2d7Dd7`ZJ1r>yVbH4Dx4(E*Z1b6SN?r;vT zXna$4`ArpsfO8)CdN`(pJZ_kt;Le@%?Pi_BE7r+n+vF+;0q5MjvBNoIJ;B}kp*x(z zD}MHu706W(0?zp$&<^K}^#CWU-ROsVIY{L41-Y+Aq?yyObd7kpij7#Dm76zb!F;*P z&%mnv<2CnWv1M@rH7K+C00+u`Y(pk#^4fg;}p=<$^JPQFeA(dNxu)Ju6)K7+D$n z##?WN|Bf(6<5bREu*k0Pzt`3FLN}@xxSfwqbu(?R`kA&@9ZlP-o~G?pSJU>YuSNB0 zIE(64UyJJ1fELxOz82N1z83ZLeeI>U2>DpYjogrVxt!z9kJCnIH4$1)oxW&Jb|#mm zi^-g&n-vo?G%7thYgTmh(4m={XiaoX)^JTmO!|nJ5t{U@^h|9S9=PMDEdMY62`e7q JBpD`Z{|8Iqx*-4n diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/._SUCCESS.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/._SUCCESS.crc deleted file mode 100644 index 3b7b044936a890cd8d651d349a752d819d71d22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmYc;N@ieSU}69O2$TUk diff --git a/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/.part-00000-d22ab04e-dacf-4c66-96cc-2f5cdbaa6177-c000.snappy.parquet.crc b/examples/ML+DL-Examples/Spark-DL/criteo_train/sample_data/val_small/.part-00000-d22ab04e-dacf-4c66-96cc-2f5cdbaa6177-c000.snappy.parquet.crc deleted file mode 100644 index 1043f863a0782a63f202d237d18be961a93be109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 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 pZIm`DCab$PBPP8^Ob=~(R(htcBM#beb@u Date: Thu, 8 Aug 2024 10:35:53 -0700 Subject: [PATCH 12/14] remove train_e2e dl example since petastorm and nvtabular dependencies not being updated (#422) Signed-off-by: Erik Ordentlich --- .../Spark-DL/train_inference_e2e/README.md | 29 - .../Spark-DL/train_inference_e2e/init.sh | 15 - .../train_inference_e2e/spark_e2e.ipynb | 1268 ----------------- 3 files changed, 1312 deletions(-) delete mode 100644 examples/ML+DL-Examples/Spark-DL/train_inference_e2e/README.md delete mode 100755 examples/ML+DL-Examples/Spark-DL/train_inference_e2e/init.sh delete mode 100644 examples/ML+DL-Examples/Spark-DL/train_inference_e2e/spark_e2e.ipynb diff --git a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/README.md b/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/README.md deleted file mode 100644 index cfeb024aa..000000000 --- a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# Spark DL Training and Inference - -This example is based on the [distributed training example](https://docs.databricks.com/machine-learning/train-model/distributed-training/spark-pytorch-distributor.html#end-to-end-distributed-training-on-databricks-notebook) from Databricks, with additional code to demonstrate: -- how to access datasets on a distributed store, like S3, using Petastorm and/or NVTabular. -- how to conduct parallel inference of a DL model on a Spark cluster, using a new API introduced in Spark 3.4. - -## Run example in Databricks -- Create an AWS S3 bucket to hold the dataset -- Create an AWS IAM User with access keys for the S3 bucket -- Add the AWS secrets to the [Databricks Secrets](https://docs.databricks.com/security/secrets/secrets.html) store using the [databricks CLI](https://docs.databricks.com/dev-tools/cli/index.html) - ``` - databricks secrets create-scope --scope aws-s3 - databricks secrets put --scope aws-s3 --key aws-access-key - databricks secrets put --scope aws-s3 --key aws-secret-key - ``` - **NOTE**: Do not hard-code the values of the secrets anywhere and avoid accidental logging of the values. - -- Copy the [init.sh](./init.sh) script to DBFS using the - ``` - databricks fs cp init.sh dbfs:/path/to/init.sh - ``` -- Create a multi-node Databricks cluster with the following configuration: - - Databricks Runtime Versions: `13.1 ML GPU Runtime` - - Worker type: `g4dn.xlarge` (x2) - - Driver type: `same as worker` - - Advanced options -> Init Scripts: `dbfs:/path/to/init.sh` -- Start the cluster -- Import the notebook into your Databricks workspace -- Attach the cluster to your notebook and run the notebook diff --git a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/init.sh b/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/init.sh deleted file mode 100755 index 7800b2130..000000000 --- a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/init.sh +++ /dev/null @@ -1,15 +0,0 @@ -!/bin/bash - -# install dependencies for petastorm and nvtabular data loaders -/databricks/python/bin/pip install cudf-cu11 dask-cudf-cu11 --extra-index-url=https://pypi.nvidia.com -/databricks/python/bin/pip install \ - merlin-dataloader \ - nvtabular \ - "numpy<1.24" \ - "protobuf<3.20" \ - "pyarrow==10.0.1" \ - s3fs \ - tritonclient - -# https://stackoverflow.com/questions/71759248/importerror-cannot-import-name-builder-from-google-protobuf-internal -wget https://raw.githubusercontent.com/protocolbuffers/protobuf/main/python/google/protobuf/internal/builder.py -O /databricks/python/lib/python3.10/site-packages/google/protobuf/internal/builder.py diff --git a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/spark_e2e.ipynb b/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/spark_e2e.ipynb deleted file mode 100644 index 61bcda00f..000000000 --- a/examples/ML+DL-Examples/Spark-DL/train_inference_e2e/spark_e2e.ipynb +++ /dev/null @@ -1,1268 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "18a99ee7-1b0d-447b-a27c-b46b0903af68", - "showTitle": false, - "title": "" - } - }, - "source": [ - "# Distributed Training and Inference with Spark 3.4\n", - "\n", - "Based on: https://docs.databricks.com/machine-learning/train-model/distributed-training/spark-pytorch-distributor.html#end-to-end-distributed-training-on-databricks-notebook" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "473535d4-472c-483f-897a-2a696f237989", - "showTitle": false, - "title": "" - } - }, - "source": [ - "## Setup" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "8abda0c7-147e-4485-afc6-6d16ac84ddb1", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "access_key = dbutils.secrets.get(scope=\"aws-s3\", key = \"aws-access-key\")\n", - "secret_key = dbutils.secrets.get(scope=\"aws-s3\", key = \"aws-secret-key\")\n", - "sc._jsc.hadoopConfiguration().set(\"fs.s3a.access.key\", access_key)\n", - "sc._jsc.hadoopConfiguration().set(\"fs.s3a.secret.key\", secret_key)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "b0c52671-2deb-4e9f-980d-a321fb586e8d", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "S3_BUCKET=\"s3a://path/to/bucket\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a505372a-d7f5-469c-8f17-15376fecc077", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Define Model" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "81ef8262-a624-4f9e-81ea-9f193e224f91", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "import os\n", - "import torch\n", - "import torch.nn as nn\n", - "import torch.nn.functional as F\n", - "import torch.optim as optim\n", - "from time import time\n", - "from torchvision import datasets, transforms\n", - "\n", - "PYTORCH_DIR = \"/dbfs/ml/pytorch\"\n", - "os.environ[\"TORCH_HOME\"] = PYTORCH_DIR\n", - "\n", - "batch_size = 100\n", - "num_epochs = 5\n", - "momentum = 0.5\n", - "log_interval = 100\n", - "learning_rate = 0.001\n", - "\n", - "\n", - "# Model definition\n", - "class Net(nn.Module):\n", - " def __init__(self):\n", - " super(Net, self).__init__()\n", - " self.conv1 = nn.Conv2d(1, 10, kernel_size=5)\n", - " self.conv2 = nn.Conv2d(10, 20, kernel_size=5)\n", - " self.conv2_drop = nn.Dropout2d()\n", - " self.fc1 = nn.Linear(320, 50)\n", - " self.fc2 = nn.Linear(50, 10)\n", - "\n", - " def forward(self, x):\n", - " x = F.relu(F.max_pool2d(self.conv1(x), 2))\n", - " x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))\n", - " x = x.view(-1, 320)\n", - " x = F.relu(self.fc1(x))\n", - " x = F.dropout(x, training=self.training)\n", - " x = self.fc2(x)\n", - " return F.log_softmax(x, dim=-1)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "8accd126-2ac5-41d6-a53f-18d53ef91e3d", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Define Common Functions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "9aa51c1b-d55e-4718-8e35-0773de29e1f9", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "def prepare_batch(batch):\n", - " # shim to allow transforming the output of the data loader in Advanced section below\n", - " # pass-through by default\n", - " return batch\n", - "\n", - "def train_one_epoch(model, device, data_loader, optimizer, epoch, prepare_batch):\n", - " model.train()\n", - " for batch_idx, batch in enumerate(data_loader):\n", - " data, target = prepare_batch(batch) # added prepare_batch for advanced data loading\n", - " data, target = data.to(device), target.to(device)\n", - " optimizer.zero_grad()\n", - " output = model(data)\n", - " loss = F.nll_loss(output, target)\n", - " loss.backward()\n", - " optimizer.step()\n", - " if batch_idx % log_interval == 0:\n", - " print(\n", - " \"Train Epoch: {} [{}]\\tLoss: {:.6f}\".format(\n", - " epoch,\n", - " batch_idx * len(data),\n", - " loss.item(),\n", - " )\n", - " )\n", - "\n", - "\n", - "def save_checkpoint(log_dir, model, optimizer, epoch):\n", - " filepath = log_dir + \"/checkpoint-{epoch}.pth.tar\".format(epoch=epoch)\n", - " state = {\n", - " \"model\": model.module.state_dict(),\n", - " \"optimizer\": optimizer.state_dict(),\n", - " }\n", - " torch.save(state, filepath)\n", - "\n", - "\n", - "def load_checkpoint(log_dir, epoch=num_epochs):\n", - " filepath = log_dir + \"/checkpoint-{epoch}.pth.tar\".format(epoch=epoch)\n", - " return torch.load(filepath)\n", - "\n", - "\n", - "def create_log_dir():\n", - " log_dir = os.path.join(PYTORCH_DIR, str(time()))\n", - " os.makedirs(log_dir)\n", - " return log_dir" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "3fc950d9-72c4-4b46-a23f-a4912132aa1a", - "showTitle": false, - "title": "" - } - }, - "source": [ - "## Distributed Training" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "772ce27d-ed0c-4909-b41f-31f60d0a9d0d", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Main Function\n", - "\n", - "The [conversion steps](https://pytorch.org/tutorials/intermediate/ddp_series_multinode.html) from single-node to distributed are highlighted in comments below.\n", - "\n", - "**Note**: the data loaders have been factored out, so we can swap in different implementations in the \"Advanced\" section below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "64fef046-c79e-4db0-b413-68d41a487374", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "def main_fn(directory):\n", - " #### Added Torch Distributed imports ####\n", - " import torch.distributed as dist\n", - " from torch.nn.parallel import DistributedDataParallel as DDP\n", - "\n", - " print(\"Running distributed training\")\n", - " dist.init_process_group(\"nccl\")\n", - "\n", - " local_rank = int(os.environ[\"LOCAL_RANK\"])\n", - " global_rank = int(os.environ[\"RANK\"])\n", - " world_size = int(os.environ[\"WORLD_SIZE\"])\n", - "\n", - " #### Adjust batch size per worker ####\n", - " adjusted_batch_size = batch_size // world_size\n", - " print(f\"{adjusted_batch_size=}\")\n", - "\n", - " if global_rank == 0:\n", - " train_parameters = {\n", - " \"batch_size\": adjusted_batch_size,\n", - " \"epochs\": num_epochs,\n", - " \"trainer\": \"TorchDistributor\",\n", - " }\n", - "\n", - " model = Net().to(local_rank)\n", - " #### Added Distributed Model ####\n", - " ddp_model = DDP(model, device_ids=[local_rank], output_device=local_rank)\n", - "\n", - " optimizer = optim.SGD(ddp_model.parameters(), lr=learning_rate, momentum=momentum)\n", - " for epoch in range(1, num_epochs + 1):\n", - " # train data_loader\n", - " data_loader = get_train_dataloader(adjusted_batch_size)\n", - "\n", - " train_one_epoch(ddp_model, local_rank, data_loader, optimizer, epoch, prepare_batch)\n", - "\n", - " if global_rank == 0:\n", - " save_checkpoint(directory, ddp_model, optimizer, epoch)\n", - "\n", - " if global_rank == 0:\n", - " ddp_model.eval()\n", - "\n", - " # test data_loader\n", - " data_loader = get_test_dataloader(batch_size)\n", - "\n", - " test_loss = 0\n", - " num_batches = 0\n", - " for batch in data_loader:\n", - " data, target = prepare_batch(batch)\n", - " device = torch.device(\"cuda\")\n", - " data, target = data.to(device), target.to(device)\n", - " output = ddp_model(data)\n", - " test_loss += F.nll_loss(output, target)\n", - " num_batches += 1\n", - "\n", - " test_loss /= num_batches\n", - " print(\"Average test loss: {}\".format(test_loss.item()))\n", - "\n", - " dist.destroy_process_group()\n", - "\n", - " return \"finished\" # can return any picklable object" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "129e940f-3b35-457e-9727-3caa3de34baf", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Torch Datasets Data Loader\n", - "This example just downloads the MNIST dataset to each worker and then uses the Torch DistributedSampler to shard the data.\n", - "\n", - "**Note**: that this only works if the dataset is small enough to be downloaded to each worker. For larger datasets, see the \"Advanced\" section below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "5def7d8d-69f9-47ca-8a21-ba31a9a4b6a9", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "def get_train_dataloader(batch_size, distributed=True):\n", - " if distributed:\n", - " from torch.utils.data.distributed import DistributedSampler\n", - "\n", - " train_dataset = datasets.MNIST(\n", - " \"data\",\n", - " train=True,\n", - " download=True,\n", - " transform=transforms.Compose(\n", - " [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]\n", - " ),\n", - " )\n", - " \n", - " #### Added Distributed Dataloader ####\n", - " train_sampler = DistributedSampler(train_dataset) if distributed else None\n", - " data_loader = torch.utils.data.DataLoader(\n", - " train_dataset, batch_size=batch_size, sampler=train_sampler\n", - " )\n", - " return data_loader\n", - "\n", - "def get_test_dataloader(batch_size):\n", - " test_dataset = datasets.MNIST(\n", - " \"data\",\n", - " train=False,\n", - " download=True,\n", - " transform=transforms.Compose(\n", - " [transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]\n", - " ),\n", - " )\n", - " data_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size) \n", - " return data_loader" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "50af6897-8441-471e-bc76-513008b964f2", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Train with TorchDistributor\n", - "See: https://spark.apache.org/docs/latest//api/python/reference/api/pyspark.ml.torch.distributor.TorchDistributor.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "ffee450c-b4b7-4606-8d02-29807a5535e4", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Log directory: /dbfs/ml/pytorch/1683755013.639396\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Started distributed training with 2 executor proceses\n", - "Running distributed training\n", - "Running distributed training\n", - "adjusted_batch_size=50\n", - "adjusted_batch_size=50\n", - "Train Epoch: 1 [0]\tLoss: 2.315846\n", - "Train Epoch: 1 [0]\tLoss: 2.328258\n", - "Train Epoch: 1 [5000]\tLoss: 2.318942\n", - "Train Epoch: 1 [5000]\tLoss: 2.305338\n", - "Train Epoch: 1 [10000]\tLoss: 2.295995\n", - "Train Epoch: 1 [10000]\tLoss: 2.291051\n", - "Train Epoch: 1 [15000]\tLoss: 2.282527\n", - "Train Epoch: 1 [15000]\tLoss: 2.305161\n", - "Train Epoch: 1 [20000]\tLoss: 2.282576\n", - "Train Epoch: 1 [20000]\tLoss: 2.280523\n", - "Train Epoch: 1 [25000]\tLoss: 2.272546\n", - "Train Epoch: 1 [25000]\tLoss: 2.324517\n", - "Train Epoch: 2 [0]\tLoss: 2.263000\n", - "Train Epoch: 2 [0]\tLoss: 2.253219\n", - "Train Epoch: 2 [5000]\tLoss: 2.269941\n", - "Train Epoch: 2 [5000]\tLoss: 2.256959\n", - "Train Epoch: 2 [10000]\tLoss: 2.222101\n", - "Train Epoch: 2 [10000]\tLoss: 2.250984\n", - "Train Epoch: 2 [15000]\tLoss: 2.173892\n", - "Train Epoch: 2 [15000]\tLoss: 2.258744\n", - "Train Epoch: 2 [20000]\tLoss: 2.161367\n", - "Train Epoch: 2 [20000]\tLoss: 2.194634\n", - "Train Epoch: 2 [25000]\tLoss: 2.214464\n", - "Train Epoch: 2 [25000]\tLoss: 2.104484\n", - "Train Epoch: 3 [0]\tLoss: 2.073377\n", - "Train Epoch: 3 [0]\tLoss: 2.065120\n", - "Train Epoch: 3 [5000]\tLoss: 2.067660\n", - "Train Epoch: 3 [5000]\tLoss: 2.036174\n", - "Train Epoch: 3 [10000]\tLoss: 1.958426\n", - "Train Epoch: 3 [10000]\tLoss: 1.914909\n", - "Train Epoch: 3 [15000]\tLoss: 1.715065\n", - "Train Epoch: 3 [15000]\tLoss: 1.934866\n", - "Train Epoch: 3 [20000]\tLoss: 1.745061\n", - "Train Epoch: 3 [20000]\tLoss: 1.685388\n", - "Train Epoch: 3 [25000]\tLoss: 1.668422\n", - "Train Epoch: 3 [25000]\tLoss: 1.605796\n", - "Train Epoch: 4 [0]\tLoss: 1.664934\n", - "Train Epoch: 4 [0]\tLoss: 1.377108\n", - "Train Epoch: 4 [5000]\tLoss: 1.495357\n", - "Train Epoch: 4 [5000]\tLoss: 1.586019\n", - "Train Epoch: 4 [10000]\tLoss: 1.228206\n", - "Train Epoch: 4 [10000]\tLoss: 1.422787\n", - "Train Epoch: 4 [15000]\tLoss: 1.213615\n", - "Train Epoch: 4 [15000]\tLoss: 1.411315\n", - "Train Epoch: 4 [20000]\tLoss: 1.170620\n", - "Train Epoch: 4 [20000]\tLoss: 1.348655\n", - "Train Epoch: 4 [25000]\tLoss: 1.186718\n", - "Train Epoch: 4 [25000]\tLoss: 1.093435\n", - "Train Epoch: 5 [0]\tLoss: 1.262350\n", - "Train Epoch: 5 [0]\tLoss: 1.168563\n", - "Train Epoch: 5 [5000]\tLoss: 1.026802\n", - "Train Epoch: 5 [5000]\tLoss: 1.100900\n", - "Train Epoch: 5 [10000]\tLoss: 1.011708\n", - "Train Epoch: 5 [10000]\tLoss: 0.810456\n", - "Train Epoch: 5 [15000]\tLoss: 0.761695\n", - "Train Epoch: 5 [15000]\tLoss: 0.966266\n", - "Train Epoch: 5 [20000]\tLoss: 1.110494\n", - "Train Epoch: 5 [20000]\tLoss: 0.952292\n", - "Train Epoch: 5 [25000]\tLoss: 0.948426\n", - "Train Epoch: 5 [25000]\tLoss: 0.963606\n", - "Average test loss: 0.4790334701538086\n", - "Finished distributed training with 2 executor proceses\n" - ] - } - ], - "source": [ - "from pyspark.ml.torch.distributor import TorchDistributor\n", - "\n", - "multi_node_multi_gpu_dir = create_log_dir()\n", - "print(\"Log directory: \", create_log_dir())\n", - "\n", - "# Set num_processes = NUM_WORKERS * NUM_GPUS_PER_WORKER\n", - "output_dist = TorchDistributor(num_processes=2, local_mode=False, use_gpu=True).run(main_fn, multi_node_multi_gpu_dir)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a40e7c6d-f486-4142-9954-62a88cfaece8", - "showTitle": false, - "title": "" - } - }, - "source": [ - "## Distributed Inference" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "2dbd74bc-523f-4d80-9187-2546eb20063f", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Convert Test Data to Parquet\n", - "\n", - "To emulate the use case where the dataset resides on a distributed file system, save the dataset as Parquet files to an S3 bucket.\n", - "\n", - "**Note**: this only needs to be run once, so you can skip this section if you've already generated the test dataset on S3." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "79573819-64b1-41cb-a6f1-f3dca07f7351", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "application/vnd.databricks.v1+bamboolib_hint": "{\"pd.DataFrames\": [], \"version\": \"0.0.1\"}", - "text/plain": [] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from pyspark.sql.types import StructType, StructField, ArrayType, FloatType, LongType" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "754362a2-ad00-45f7-86bc-4a24e85281c0", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "def save_as_parquet(data_loader, bucket):\n", - " data, labels = next(iter(data_loader))\n", - "\n", - " # flatten images\n", - " np_data = np.array(data).reshape(-1, 784)\n", - "\n", - " # create pandas dataframe with single array column\n", - " pdf = pd.DataFrame(np_data)\n", - " pdf1 = pd.DataFrame()\n", - " pdf1['data'] = pdf.values.tolist()\n", - " pdf1['label'] = labels\n", - " \n", - " # convert to Spark DataFrame\n", - " schema = StructType([\n", - " StructField(\"data\",ArrayType(FloatType()), True),\n", - " StructField(\"label\", LongType(), True)\n", - " ])\n", - " df = spark.createDataFrame(pdf1, schema)\n", - "\n", - " # save DataFrame to S3 bucket as parquet\n", - " df.write.mode(\"overwrite\").parquet(bucket)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "de27976f-96de-44c6-931c-7467bc63d16f", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "# save test dataset as parquet to S3\n", - "test_data_loader = get_test_dataloader(batch_size=10000)\n", - "save_as_parquet(test_data_loader, f\"{S3_BUCKET}/test\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "3815be25-0e4f-4a6a-8348-50922c75375a", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Inference with predict_batch_udf\n", - "See: https://spark.apache.org/docs/latest//api/python/reference/api/pyspark.ml.functions.predict_batch_udf.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "28293bff-2e66-4a16-80d8-1f591a1db981", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "from pyspark.ml.functions import predict_batch_udf\n", - "from pyspark.sql.functions import struct, col, array\n", - "from pyspark.sql.types import ArrayType, FloatType, Union, Dict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "ce0837d6-2b18-4553-8803-f8cb773b3ef7", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "df = spark.read.parquet(\"${S3_BUCKET}/test\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "f8d8af05-9cc4-4c30-989a-ab917e56b3e2", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "def predict_batch_fn():\n", - " import torch \n", - " device = torch.device(\"cuda\")\n", - " model = Net().to(device)\n", - " checkpoint = load_checkpoint(multi_node_multi_gpu_dir)\n", - " model.load_state_dict(checkpoint['model'])\n", - "\n", - " def predict(inputs):\n", - " torch_inputs = torch.from_numpy(inputs).to(device)\n", - " outputs = model(torch_inputs)\n", - " return outputs.cpu().detach().numpy()\n", - " \n", - " return predict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "9f3b8672-7e84-4c7c-8020-3d552e30b934", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "mnist = predict_batch_udf(predict_batch_fn,\n", - " input_tensor_shapes=[[1,28,28]],\n", - " return_type=ArrayType(FloatType()),\n", - " batch_size=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "7ce2e38c-2dfd-4daa-950b-f928a39cb874", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "preds = df.withColumn(\"preds\", mnist('data')).collect()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "a77c5663-c109-403d-a7d9-d1d967f53e25", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Check predictions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "56e06323-5694-4cc6-be8c-ae643c19b30d", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "1dbdda94-9726-49da-8734-9bfde8bbb9d0", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9EAAAIICAYAAABpdm0gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgo0lEQVR4nO3de3xU1bn/8W/uhCSEW0gIN8NVBQVBQEQRJEKhWFG0am0L2FaUi1xOveCpcqoesWoVxXhtC9qjxXL8IRURqwgoykUjtHIVFRSFBGhJgkhCklm/PzgE414DezKTzGV/3q/X/JFn1qy9dngWM8/syTNxxhgjAAAAAABwSvHhXgAAAAAAANGCIhoAAAAAAJcoogEAAAAAcIkiGgAAAAAAlyiiAQAAAABwiSIaAAAAAACXKKIBAAAAAHCJIhoAAAAAAJcoogEAAAAAcIkiOoKcdtppGjduXM3PK1euVFxcnFauXBmyY8TFxem//uu/QjYfEErsAXgZ+Q+vYw/Ay8j/6EIR/X/mz5+vuLi4mlujRo3UtWtXTZ48WcXFxeFeXkCWLl0aVRvk8ccf1xlnnKGUlBS1adNGM2bM0OHDh8O9LM9hD4QPeyD8yP/w2bp1q37wgx8oPT1dzZs3189+9jPt378/3MvyHPZAeDz77LO66KKLlJ2drZSUFOXl5Wn8+PHatWtXuJfmKeR/+FVWVurMM89UXFycHnrooXAv55QSw72ASHP33XcrLy9P5eXlWr16tZ588kktXbpUmzZtUuPGjRt0LYMGDdKRI0eUnJwc0OOWLl2qgoIC6wY6cuSIEhMj55/9tttu0wMPPKArr7xSU6dO1ZYtWzR37lxt3rxZb7zxRriX50nsgYbFHogs5H/D+uqrrzRo0CBlZmbqvvvu0zfffKOHHnpIH3/8sdavXx/wuSN47IGGtWHDBuXl5elHP/qRmjVrpp07d+rZZ5/VkiVL9I9//EO5ubnhXqKnkP/hM3fuXH355ZfhXoZrkflbDKMRI0bo3HPPlST98pe/VIsWLfTwww9r8eLFuvbaa62POXz4sNLS0kK+lvj4eDVq1Cikc4Z6vmDs3btXDz/8sH72s5/p+eefr4l37dpVU6ZM0auvvqpLL700jCv0JvZAw2EPRB7yv2Hdd999Onz4sAoLC9W+fXtJUr9+/XTJJZdo/vz5uuGGG8K8Qu9hDzSsJ554whEbPXq0zj33XD3//PO6/fbbw7Aq7yL/w2Pfvn26++67ddttt+muu+4K93Jc4ePcp3DxxRdLknbu3ClJGjdunNLT0/XZZ59p5MiRysjI0HXXXSdJ8vl8mjNnjrp3765GjRopOztbEyZM0MGDB2vNaYzRvffeq7Zt26px48YaMmSINm/e7Di2v7+FWLdunUaOHKlmzZopLS1NZ599th599NGa9RUUFEhSrY+lHGf7W4gNGzZoxIgRatKkidLT0zV06FCtXbu21pjjH3N57733NGPGDGVlZSktLU2XX36542N3paWl2rZtm0pLS0/6u12zZo2qqqp0zTXX1Iof/3nBggUnfTwaBnvgGPaAN5H/x9RH/kvSyy+/rFGjRtUU0JKUn5+vrl276q9//espH4/6xx44pr72gM1pp50mSSopKanT4xE65P8x9Z3/t99+u7p166af/vSnrh8TblyJPoXPPvtMktSiRYuaWFVVlYYPH64LLrhADz30UM3HOyZMmKD58+dr/Pjxuvnmm7Vz5049/vjj2rBhg9577z0lJSVJku666y7de++9GjlypEaOHKmPPvpIw4YN09GjR0+5njfffFOjRo1S69atNXXqVOXk5Gjr1q1asmSJpk6dqgkTJmjPnj1688039ec///mU823evFkXXnihmjRpoltvvVVJSUl6+umnNXjwYK1atUr9+/evNX7KlClq1qyZZs2apV27dmnOnDmaPHmyXnrppZoxixYt0vjx4zVv3rxaDRK+r6KiQpKUmppaK37891lYWHjK9aP+sQfYA15G/tdf/n/99dfat29fzVWf7+rXr5+WLl16yvWj/rEH6m8PfNe//vUvVVdX68svv9Tdd98tSRo6dKirx6L+kP/1n//r16/Xc889p9WrV9cq+COegTHGmHnz5hlJ5q233jL79+83u3fvNgsWLDAtWrQwqamp5quvvjLGGDN27Fgjydx+++21Hv/uu+8aSeaFF16oFV+2bFmt+L59+0xycrL54Q9/aHw+X824O+64w0gyY8eOrYmtWLHCSDIrVqwwxhhTVVVl8vLyTIcOHczBgwdrHee7c02aNMn4+6eVZGbNmlXz8+jRo01ycrL57LPPamJ79uwxGRkZZtCgQY7fT35+fq1jTZ8+3SQkJJiSkhLH2Hnz5lnXcFxhYaGRZO65555a8eO/s/T09JM+HqHFHmAPeBn53/D5/8EHHxhJ5vnnn3fcd8sttxhJpry8/KRzIHTYAw2/B74rJSXFSDKSTIsWLcxjjz3m+rEIHvkfnvz3+XymX79+5tprrzXGGLNz504jyTz44IOnfGy48XHu78nPz1dWVpbatWuna665Runp6Vq0aJHatGlTa9xNN91U6+eFCxcqMzNTl1xyiQ4cOFBz69Onj9LT07VixQpJ0ltvvaWjR49qypQptd5tmTZt2inXtmHDBu3cuVPTpk1T06ZNa91Xl3duqqur9fe//12jR49Wx44da+KtW7fWT37yE61evVplZWW1HnPDDTfUOtaFF16o6upqffHFFzWxcePGyRhzynefevfurf79++t3v/ud5s2bp127dun111/XhAkTlJSUpCNHjgR8Tggee4A94GXkf8Pl//H8TklJcdx3/O/22AMNjz3QcHvgu15//XUtXbpUv//979W+fXu+oSFMyP+Gzf/58+fr448/1u9+97uA1x9ufJz7ewoKCtS1a1clJiYqOztb3bp1U3x87fcaEhMT1bZt21qxHTt2qLS0VK1atbLOu2/fPkmqSbIuXbrUuj8rK0vNmjU76dqOf6SkR48e7k/oJPbv369vv/1W3bp1c9x3xhlnyOfzaffu3erevXtN/Lt/tyapZs3f/3sPt15++WVdffXVuv766yVJCQkJmjFjhlatWqXt27fXaU4Ehz1wDHvAm8j/Yxoi/4//GcPxP2v4rvLy8lpj0HDYA8c01HPAcUOGDJF0rLHVZZddph49eig9PV2TJ08Oal4Ehvw/piHyv6ysTDNnztQtt9yidu3aBfz4cKOI/p5+/fpZ/z7ru1JSUhwbyufzqVWrVnrhhResj8nKygrZGsMpISHBGjfG1Gm+Nm3aaPXq1dqxY4eKiorUpUsX5eTkKDc3V127dg1mqagj9sDJsQdiG/l/cqHM/9atW0s61qX++/bu3avmzZtbr1KjfrEHTi7UzwE2nTp10jnnnKMXXniBIrqBkf8nF8r8f+ihh3T06FFdffXVNd+L/tVXX0k6VpTv2rVLubm5EftVhxTRIdKpUye99dZbGjhw4EnfOe/QoYOkY+9YffejE/v37z/luzidOnWSJG3atEn5+fl+x7n9SEdWVpYaN25svdq1bds2xcfHN9g7Q126dKl5V27Lli3au3dvQB+DQvixB4LDHohu5H/g2rRpo6ysLH344YeO+9avX69evXrV27EReuyB0Dpy5Ij1UxqITOR/4L788ksdPHiw1pXu4+677z7dd9992rBhQ8Q+F/A30SHy4x//WNXV1brnnnsc91VVVdV8TUF+fr6SkpI0d+7cWu/azJkz55TH6N27t/Ly8jRnzhzH1x58d67j31V3qq9GSEhI0LBhw7R48eKad4Akqbi4WC+++KIuuOACNWnS5JTr+r5gvtrB5/Pp1ltvVePGjXXjjTcG/HiED3vgBPaA95D/JwSS/2PGjNGSJUu0e/fumtjy5cv1ySef6Kqrrgr42Agf9sAJbvdAVVWVtXBav369Pv7441NeEUXkIP9PcJv/N998sxYtWlTr9vTTT0s69nfVixYtUl5eXsDHbyhciQ6Riy66SBMmTNDs2bO1ceNGDRs2TElJSdqxY4cWLlyoRx99VFdeeaWysrL061//WrNnz9aoUaM0cuRIbdiwQa+//rpatmx50mPEx8frySef1KWXXqpevXpp/Pjxat26tbZt26bNmzfrjTfekCT16dNH0rHkHD58uBISEhzfQ3vcvffeqzfffFMXXHCBJk6cqMTERD399NOqqKjQAw88UKffRSCt7adOnary8nL16tVLlZWVevHFF2ta3X//7y4Q2dgDJ7AHvIf8PyGQ/L/jjju0cOFCDRkyRFOnTtU333yjBx98UGeddZbGjx9fp+MjPNgDJ7jdA998843atWunq6++Wt27d1daWpo+/vhjzZs3T5mZmbrzzjvrdHw0PPL/BLf537t3b/Xu3btW7Hgx3717d40ePbpOx28wDdsMPHIdb8f+wQcfnHTc2LFjTVpamt/7n3nmGdOnTx+TmppqMjIyzFlnnWVuvfVWs2fPnpox1dXV5re//a1p3bq1SU1NNYMHDzabNm0yHTp0OGlr++NWr15tLrnkEpORkWHS0tLM2WefbebOnVtzf1VVlZkyZYrJysoycXFxtdrc63ut7Y0x5qOPPjLDhw836enppnHjxmbIkCHm/fffd/X7sa0xkNb28+bNMz179jRpaWkmIyPDDB061Lz99tunfBxCjz3AHvAy8j88+W+MMZs2bTLDhg0zjRs3Nk2bNjXXXXedKSoqcvVYhA57oOH3QEVFhZk6dao5++yzTZMmTUxSUpLp0KGD+cUvfmF27tx50scitMj/8D0HfFc0fcVV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\n", - "text/plain": [ - "

" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(2,5)\n", - "for i, ax in enumerate(ax.flatten()):\n", - " img = np.array(preds[i].data).reshape(28,28)\n", - " prediction = np.argmax(preds[i].preds)\n", - " ax.set_title(f\"Prediction: {prediction}\")\n", - " ax.imshow(img)\n", - "\n", - "plt.rcParams[\"figure.figsize\"] = (12,7)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "883a1bc9-e091-4f11-869d-ef850cacf480", - "showTitle": false, - "title": "" - } - }, - "source": [ - "## Advanced\n", - "For most real-world use cases with Spark and DL, the training datasets will generally be much larger than can be hosted on a single box. Instead, they will typically be stored in a distributed filesystem, like HDFS, S3, or GCS. The following code demonstrates how to access a distributed dataset (hosted in S3) during training.\n", - "\n", - "**Note**: For simplicity, we will continue to use the MNIST dataset, but keep in mind that real-world datasets will be several orders of magnitude larger." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "ae4442ad-1a23-4732-9398-c5b580d85d29", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Convert Train Data to Parquet\n", - "\n", - "To emulate the use case where the dataset resides on a distributed file system, save the dataset as Parquet files to an S3 bucket.\n", - "\n", - "**Note**: this only needs to be run once, so you can skip this section if you've already generated the dataset on S3." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "445a0adf-ba40-4230-a923-cfd0cfe5730d", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "# save train dataset as parquet to S3\n", - "train_data_loader = get_train_dataloader(batch_size=60000, distributed=False)\n", - "save_as_parquet(train_data_loader, f\"{S3_BUCKET}/train\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "ef83e46a-a4f9-44d1-9ca2-d9287aaf7f2e", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Distributed Data Loader\n", - "Since the dataset is stored in a distributed filesystem, you will need to use a distributed data loader capable of sharding files across the workers. Currently, there are two main options (aside from custom data loaders):\n", - "- Petastorm\n", - "- NVTabular\n", - "\n", - "Since the cluster is already configured with GPUs, we will demonstrate using NVTabular here, since it provides GPU-accelerated data loading with built-in support for S3FS and Parquet files." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "2220bcd9-8cb8-4671-a613-f5f2c1f985bf", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [ - "storage_options={\"key\": access_key, \"secret\": secret_key}\n", - "\n", - "def seed_fn():\n", - " \"\"\"\n", - " Generate consistent dataloader shuffle seeds across workers\n", - " Reseeds each worker's dataloader each epoch to get fresh a shuffle\n", - " that's consistent across workers.\n", - " \"\"\"\n", - " return 0\n", - "\n", - "def get_train_dataloader(batch_size,):\n", - " import nvtabular as nvt\n", - " from nvtabular.loader.torch import TorchAsyncItr, DLDataLoader\n", - "\n", - " global_rank = int(os.environ[\"RANK\"])\n", - " world_size = int(os.environ[\"WORLD_SIZE\"])\n", - "\n", - " train_dataset = TorchAsyncItr(\n", - " nvt.Dataset(f\"{S3_BUCKET}/train\", engine=\"parquet\", storage_options=storage_options),\n", - " batch_size=batch_size,\n", - " cats=[],\n", - " conts=[\"data\"],\n", - " labels=[\"label\"],\n", - " shuffle=True,\n", - " parts_per_chunk=1,\n", - " global_size=world_size,\n", - " global_rank=global_rank,\n", - " seed_fn=seed_fn\n", - " )\n", - " train_loader = DLDataLoader(\n", - " train_dataset, batch_size=None, collate_fn=lambda x: x, pin_memory=False, num_workers=0\n", - " )\n", - "\n", - " return train_loader\n", - "\n", - "\n", - "def get_test_dataloader(batch_size):\n", - " import nvtabular as nvt\n", - " from nvtabular.loader.torch import TorchAsyncItr, DLDataLoader\n", - "\n", - " global_rank = int(os.environ[\"RANK\"])\n", - " world_size = int(os.environ[\"WORLD_SIZE\"])\n", - "\n", - " train_dataset = TorchAsyncItr(\n", - " nvt.Dataset(f\"{S3_BUCKET}/test\", engine=\"parquet\", storage_options=storage_options),\n", - " batch_size=batch_size,\n", - " cats=[],\n", - " conts=[\"data\"],\n", - " labels=[\"label\"],\n", - " shuffle=False,\n", - " parts_per_chunk=1,\n", - " global_size=world_size,\n", - " global_rank=global_rank,\n", - " seed_fn=seed_fn\n", - " )\n", - " train_loader = DLDataLoader(\n", - " train_dataset, batch_size=None, collate_fn=lambda x: x, pin_memory=False, num_workers=0\n", - " )\n", - "\n", - " return train_loader\n", - "\n", - "def prepare_batch(batch):\n", - " data = batch[0]['data__values'].reshape(-1,1,28,28)\n", - " label = batch[1]\n", - " return data, label" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "4b98395c-a662-4d4f-89a2-7837af89a9ec", - "showTitle": false, - "title": "" - } - }, - "source": [ - "### Train with NVTabular Data Loader" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "2ebb1fb7-f7cc-4601-8e8b-9fb26f4072dc", - "showTitle": false, - "title": "" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Log directory: /dbfs/ml/pytorch/1683755103.642704\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Started distributed training with 2 executor proceses\n", - "Running distributed training\n", - "Running distributed training\n", - "adjusted_batch_size=50\n", - "adjusted_batch_size=50\n", - "2023-05-10 21:45:14.407035: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2023-05-10 21:45:14.551173: I tensorflow/core/util/port.cc:104] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", - "2023-05-10 21:45:15.573393: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA\n", - "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", - "2023-05-10 21:45:15.733816: I tensorflow/core/util/port.cc:104] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", - "/databricks/python/lib/python3.10/site-packages/tritonclient/grpc/__init__.py:60: UserWarning: Imported version of grpc is 1.48.1. There is a memory leak in certain Python GRPC versions (1.43.0 to be specific). Please use versions <1.43.0 or >=1.51.1 to avoid leaks (see https://github.com/grpc/grpc/issues/28513).\n", - " warnings.warn(\n", - "2023-05-10 21:45:16.309734: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "2023-05-10 21:45:16.310694: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "2023-05-10 21:45:16.311293: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "/databricks/python/lib/python3.10/site-packages/tritonclient/grpc/__init__.py:60: UserWarning: Imported version of grpc is 1.48.1. There is a memory leak in certain Python GRPC versions (1.43.0 to be specific). Please use versions <1.43.0 or >=1.51.1 to avoid leaks (see https://github.com/grpc/grpc/issues/28513).\n", - " warnings.warn(\n", - "2023-05-10 21:45:17.727073: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "2023-05-10 21:45:17.728005: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "2023-05-10 21:45:17.728554: I tensorflow/compiler/xla/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero\n", - "Train Epoch: 1 [0]\tLoss: 2.305805\n", - "Train Epoch: 1 [0]\tLoss: 2.339357\n", - "Train Epoch: 1 [5000]\tLoss: 2.280867\n", - "Train Epoch: 1 [5000]\tLoss: 2.368357\n", - "Train Epoch: 1 [10000]\tLoss: 2.290627\n", - "Train Epoch: 1 [10000]\tLoss: 2.271626\n", - "Train Epoch: 1 [15000]\tLoss: 2.285692\n", - "Train Epoch: 1 [15000]\tLoss: 2.309556\n", - "Train Epoch: 1 [20000]\tLoss: 2.291195\n", - "Train Epoch: 1 [20000]\tLoss: 2.258479\n", - "Train Epoch: 1 [25000]\tLoss: 2.305413\n", - "Train Epoch: 1 [25000]\tLoss: 2.257723\n", - "Train Epoch: 2 [0]\tLoss: 2.235390\n", - "Train Epoch: 2 [0]\tLoss: 2.198956\n", - "Train Epoch: 2 [5000]\tLoss: 2.218740\n", - "Train Epoch: 2 [5000]\tLoss: 2.221195\n", - "Train Epoch: 2 [10000]\tLoss: 2.187166\n", - "Train Epoch: 2 [10000]\tLoss: 2.137402\n", - "Train Epoch: 2 [15000]\tLoss: 2.126111\n", - "Train Epoch: 2 [15000]\tLoss: 2.073809\n", - "Train Epoch: 2 [20000]\tLoss: 2.081784\n", - "Train Epoch: 2 [20000]\tLoss: 1.966479\n", - "Train Epoch: 2 [25000]\tLoss: 1.930605\n", - "Train Epoch: 2 [25000]\tLoss: 1.878074\n", - "Train Epoch: 3 [0]\tLoss: 1.694411\n", - "Train Epoch: 3 [0]\tLoss: 1.862214\n", - "Train Epoch: 3 [5000]\tLoss: 1.893949\n", - "Train Epoch: 3 [5000]\tLoss: 1.882721\n", - "Train Epoch: 3 [10000]\tLoss: 1.315645\n", - "Train Epoch: 3 [10000]\tLoss: 1.813671\n", - "Train Epoch: 3 [15000]\tLoss: 1.548722\n", - "Train Epoch: 3 [15000]\tLoss: 1.306659\n", - "Train Epoch: 3 [20000]\tLoss: 1.352624\n", - "Train Epoch: 3 [20000]\tLoss: 1.249572\n", - "Train Epoch: 3 [25000]\tLoss: 1.214441\n", - "Train Epoch: 3 [25000]\tLoss: 1.272143\n", - "Train Epoch: 4 [0]\tLoss: 1.395404\n", - "Train Epoch: 4 [0]\tLoss: 1.208001\n", - "Train Epoch: 4 [5000]\tLoss: 1.393423\n", - "Train Epoch: 4 [5000]\tLoss: 1.033216\n", - "Train Epoch: 4 [10000]\tLoss: 1.039255\n", - "Train Epoch: 4 [10000]\tLoss: 1.147518\n", - "Train Epoch: 4 [15000]\tLoss: 1.105749\n", - "Train Epoch: 4 [15000]\tLoss: 0.898317\n", - "Train Epoch: 4 [20000]\tLoss: 0.889672\n", - "Train Epoch: 4 [20000]\tLoss: 0.999275\n", - "Train Epoch: 4 [25000]\tLoss: 0.814816\n", - "Train Epoch: 4 [25000]\tLoss: 0.955990\n", - "Train Epoch: 5 [0]\tLoss: 1.236833\n", - "Train Epoch: 5 [0]\tLoss: 0.852844\n", - "Train Epoch: 5 [5000]\tLoss: 1.068169\n", - "Train Epoch: 5 [5000]\tLoss: 0.947117\n", - "Train Epoch: 5 [10000]\tLoss: 1.434625\n", - "Train Epoch: 5 [10000]\tLoss: 0.652500\n", - "Train Epoch: 5 [15000]\tLoss: 0.938174\n", - "Train Epoch: 5 [15000]\tLoss: 0.902604\n", - "Train Epoch: 5 [20000]\tLoss: 0.698800\n", - "Train Epoch: 5 [20000]\tLoss: 0.812113\n", - "Train Epoch: 5 [25000]\tLoss: 0.591616\n", - "Train Epoch: 5 [25000]\tLoss: 1.005589\n", - "Average test loss: 0.5255906581878662\n", - "Finished distributed training with 2 executor proceses\n" - ] - } - ], - "source": [ - "from pyspark.ml.torch.distributor import TorchDistributor\n", - "\n", - "multi_node_multi_gpu_dir = create_log_dir()\n", - "print(\"Log directory: \", create_log_dir())\n", - "\n", - "# Set num_processes = NUM_WORKERS * NUM_GPUS_PER_WORKER\n", - "output_dist = TorchDistributor(num_processes=2, local_mode=False, use_gpu=True).run(main_fn, multi_node_multi_gpu_dir)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "application/vnd.databricks.v1+cell": { - "cellMetadata": { - "byteLimit": 2048000, - "rowLimit": 10000 - }, - "inputWidgets": {}, - "nuid": "7e66fc07-ee69-4cdc-81d6-3130e03df3b2", - "showTitle": false, - "title": "" - } - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "application/vnd.databricks.v1+notebook": { - "dashboards": [], - "language": "python", - "notebookMetadata": { - "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 2919187681861530, - "dataframes": [ - "_sqldf" - ] - }, - "pythonIndentUnit": 2 - }, - "notebookName": "Spark 3.4 E2E S3", - "notebookOrigID": 2285149241771137, - "widgets": {} - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 2b0a7246510350ff1b54e059d8897bba4987dbfc Mon Sep 17 00:00:00 2001 From: Partho Sarthi Date: Thu, 15 Aug 2024 18:51:44 -0700 Subject: [PATCH 13/14] Update Databricks Notebook for Tools v24.08.0 (#427) * Update Databricks Notebook for Tools for v24.08 * Sign-off commit Signed-off-by: Partho Sarthi --------- Signed-off-by: Partho Sarthi --- tools/databricks/README.md | 2 +- ...rk] Profiling Tool Notebook Template.ipynb | 27 ++-- ...Qualification Tool Notebook Template.ipynb | 127 +++++++++++++++++- 3 files changed, 140 insertions(+), 16 deletions(-) diff --git a/tools/databricks/README.md b/tools/databricks/README.md index 984a579ac..7691e2508 100644 --- a/tools/databricks/README.md +++ b/tools/databricks/README.md @@ -20,4 +20,4 @@ top of the notebook. After that, select *Run all* to execute the tools for the 1. Multiple event logs must be comma-separated. - For example: `/dbfs/path/to/eventlog1,/dbfs/path/to/eventlog2` -**Latest Tools Version Supported** 24.06.1 \ No newline at end of file +**Latest Tools Version Supported** 24.08.0 \ No newline at end of file diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb index 5221ebd92..503b18ffb 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Profiling Tool Notebook Template.ipynb @@ -4,7 +4,10 @@ "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": {}, + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, "inputWidgets": {}, "nuid": "df33c614-2ecc-47a0-8600-bc891681997f", "showTitle": false, @@ -50,7 +53,7 @@ }, "outputs": [], "source": [ - "TOOLS_VER = \"24.06.1\"\n", + "TOOLS_VER = \"24.08.0\"\n", "print(f\"Using Tools Version: {TOOLS_VER}\")" ] }, @@ -156,7 +159,10 @@ "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": {}, + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, "inputWidgets": {}, "nuid": "f83af6c8-5a79-4a46-965b-38a4cb621877", "showTitle": false, @@ -380,7 +386,10 @@ "cell_type": "markdown", "metadata": { "application/vnd.databricks.v1+cell": { - "cellMetadata": {}, + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, "inputWidgets": {}, "nuid": "bbe50fde-0bd6-4281-95fd-6a1ec6f17ab2", "showTitle": false, @@ -455,7 +464,7 @@ "stack": true }, "nuid": "91c1bfb2-695a-4e5c-8a25-848a433108dc", - "origId": 1075819839476955, + "origId": 2173122769183713, "title": "Executive View", "version": "DashboardViewV1", "width": 1600 @@ -469,7 +478,7 @@ "stack": true }, "nuid": "62243296-4562-4f06-90ac-d7a609f19c16", - "origId": 1075819839476956, + "origId": 2173122769183714, "title": "App View", "version": "DashboardViewV1", "width": 1920 @@ -479,7 +488,7 @@ "language": "python", "notebookMetadata": { "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 203373918309288, + "commandId": 2173122769183692, "dataframes": [ "_sqldf" ] @@ -507,11 +516,11 @@ "widgetInfo": { "widgetType": "text", "defaultValue": "/dbfs/user1/profiling_logs", - "label": null, + "label": "", "name": "Eventlog Path", "options": { "widgetType": "text", - "autoCreated": null, + "autoCreated": false, "validationRegex": null } } diff --git a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb index 4eab0c475..898a4846f 100644 --- a/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb +++ b/tools/databricks/[RAPIDS Accelerator for Apache Spark] Qualification Tool Notebook Template.ipynb @@ -49,7 +49,7 @@ }, "outputs": [], "source": [ - "TOOLS_VER = \"24.06.1\"\n", + "TOOLS_VER = \"24.08.0\"\n", "print(f\"Using Tools Version: {TOOLS_VER}\")" ] }, @@ -282,6 +282,7 @@ "\n", "try:\n", " output_folder, log_file_location = extract_file_info(CONSOLE_OUTPUT_PATH, OUTPUT_PATH)\n", + " jar_output_folder = os.path.join(output_folder, \"rapids_4_spark_qualification_output\")\n", " print(f\"Output folder detected {output_folder}\")\n", " copy_logs(output_folder, log_file_location, CONSOLE_OUTPUT_PATH, CONSOLE_ERROR_PATH)\n", " print(f\"Logs successfully copied to {output_folder}\")\n", @@ -424,9 +425,110 @@ "outputs": [], "source": [ "summary_output=pd.read_csv(os.path.join(output_folder, \"qualification_summary.csv\"))\n", + "summary_output=summary_output.drop(columns=[\"Unnamed: 0\"]).rename_axis('Index').reset_index()\n", "display(summary_output)" ] }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "73b5e0b0-3a96-4cc6-8e6c-840e4b0d9d43", + "showTitle": false, + "title": "" + } + }, + "source": [ + "\n", + "## Application Status\n", + "\n", + "The report show the status of each eventlog file that was provided\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "c9ffbfdb-dbb6-4736-b9cb-2ac457cc6714", + "showTitle": true, + "title": "rapids_4_spark_qualification_output_status.csv" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "status_output=pd.read_csv(os.path.join(jar_output_folder, \"rapids_4_spark_qualification_output_status.csv\"))\n", + "display(status_output)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": {}, + "inputWidgets": {}, + "nuid": "09945d39-f9c2-4f4a-8afd-4f309f24f8e0", + "showTitle": false, + "title": "" + } + }, + "source": [ + "\n", + "## Metadata for Migration\n", + "\n", + "The report show the metadata of each app as:\n", + "- Recommended GPU cluster\n", + "- File location of full cluster config recommendations\n", + "- File location of only Gpu specific config recommendations\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "application/vnd.databricks.v1+cell": { + "cellMetadata": { + "byteLimit": 2048000, + "rowLimit": 10000 + }, + "inputWidgets": {}, + "nuid": "133cf1bd-33b6-4a62-9ae2-5505717092d1", + "showTitle": true, + "title": "app_metadata.json" + }, + "jupyter": { + "source_hidden": true + } + }, + "outputs": [], + "source": [ + "import json\n", + "metadata_file = os.path.join(output_folder, \"app_metadata.json\")\n", + "def camel_to_title(name):\n", + " return re.sub('([a-z])([A-Z])', r'\\1 \\2', name).title()\n", + " \n", + "with open(metadata_file, 'r') as file:\n", + " json_data = json.load(file)\n", + "\n", + "df = pd.DataFrame(json_data)\n", + "df['recommendedGpuCluster'] = df['clusterInfo'].apply(lambda x: x['recommendedCluster'])\n", + "df['sourceCluster'] = df['clusterInfo'].apply(lambda x: x['sourceCluster'])\n", + "df.drop(columns=['clusterInfo'], inplace=True)\n", + "df = df[['appId', 'appName', 'estimatedGpuSpeedupCategory', 'recommendedGpuCluster', 'fullClusterConfigRecommendations', 'gpuConfigRecommendationBreakdown']]\n", + "df.columns = [camel_to_title(col) for col in df.columns]\n", + "display(df)" + ] + }, { "cell_type": "markdown", "metadata": { @@ -474,7 +576,6 @@ }, "outputs": [], "source": [ - "jar_output_folder = os.path.join(output_folder, \"rapids_4_spark_qualification_output\")\n", "stages_output=pd.read_csv(os.path.join(jar_output_folder, \"rapids_4_spark_qualification_output_stages.csv\"))\n", "display(stages_output)" ] @@ -524,7 +625,7 @@ "inputWidgets": {}, "nuid": "998b0c51-0cb6-408e-a01a-d1f5b1a61e1f", "showTitle": true, - "title": "rapids_4_spark_qualification_output_execs" + "title": "rapids_4_spark_qualification_output_execs.csv" }, "jupyter": { "source_hidden": true @@ -549,7 +650,7 @@ "stack": true }, "nuid": "91c1bfb2-695a-4e5c-8a25-848a433108dc", - "origId": 1075819839476974, + "origId": 2173122769183715, "title": "Executive View", "version": "DashboardViewV1", "width": 1600 @@ -563,17 +664,31 @@ "stack": true }, "nuid": "62243296-4562-4f06-90ac-d7a609f19c16", - "origId": 1075819839476975, + "origId": 2173122769183716, "title": "App View", "version": "DashboardViewV1", "width": 1920 + }, + { + "elements": [], + "globalVars": {}, + "guid": "", + "layoutOption": { + "grid": true, + "stack": true + }, + "nuid": "854f9c75-5977-42aa-b3dd-c680b8331f19", + "origId": 2173122769183722, + "title": "Untitled", + "version": "DashboardViewV1", + "width": 1024 } ], "environmentMetadata": null, "language": "python", "notebookMetadata": { "mostRecentlyExecutedCommandWithImplicitDF": { - "commandId": 1075819839476965, + "commandId": 2173122769183704, "dataframes": [ "_sqldf" ] From 26032f2e8899cc070a2d4dda2ab5a5c884c433f1 Mon Sep 17 00:00:00 2001 From: liyuan <84758614+nvliyuan@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:11:56 +0800 Subject: [PATCH 14/14] [Doc] Update plugin versions for 24.08.1 [skip ci] (#426) * update version for 2408 release Signed-off-by: liyuan * update to 2408.1 Signed-off-by: liyuan --------- Signed-off-by: liyuan --- .../xgboost-examples/csp/databricks/databricks.md | 4 ++-- docs/get-started/xgboost-examples/csp/databricks/init.sh | 2 +- .../xgboost-examples/on-prem-cluster/kubernetes-scala.md | 2 +- .../prepare-package-data/preparation-python.md | 2 +- .../prepare-package-data/preparation-scala.md | 2 +- examples/ML+DL-Examples/Spark-cuML/pca/Dockerfile | 2 +- .../micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb | 2 +- examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md | 2 +- examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml | 4 ++-- .../RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt | 4 ++-- .../agaricus/notebooks/python/agaricus-gpu.ipynb | 2 +- .../mortgage/notebooks/python/MortgageETL.ipynb | 6 +++--- .../mortgage/notebooks/python/cv-mortgage-gpu.ipynb | 2 +- .../mortgage/notebooks/python/mortgage-gpu.ipynb | 2 +- .../mortgage/notebooks/scala/mortgage-ETL.ipynb | 4 ++-- .../taxi/notebooks/python/cv-taxi-gpu.ipynb | 2 +- .../XGBoost-Examples/taxi/notebooks/python/taxi-ETL.ipynb | 4 ++-- .../XGBoost-Examples/taxi/notebooks/python/taxi-gpu.ipynb | 2 +- .../XGBoost-Examples/taxi/notebooks/scala/taxi-ETL.ipynb | 4 ++-- 19 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/get-started/xgboost-examples/csp/databricks/databricks.md b/docs/get-started/xgboost-examples/csp/databricks/databricks.md index 1377a1532..d56f8ca84 100644 --- a/docs/get-started/xgboost-examples/csp/databricks/databricks.md +++ b/docs/get-started/xgboost-examples/csp/databricks/databricks.md @@ -21,7 +21,7 @@ Navigate to your home directory in the UI and select **Create** > **File** from create an `init.sh` scripts with contents: ```bash #!/bin/bash - sudo wget -O /databricks/jars/rapids-4-spark_2.12-24.06.0.jar https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar + sudo wget -O /databricks/jars/rapids-4-spark_2.12-24.08.1.jar https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar ``` 1. Select the Databricks Runtime Version from one of the supported runtimes specified in the Prerequisites section. @@ -68,7 +68,7 @@ create an `init.sh` scripts with contents: ```bash spark.rapids.sql.python.gpu.enabled true spark.python.daemon.module rapids.daemon_databricks - spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.12-24.06.0.jar:/databricks/spark/python + spark.executorEnv.PYTHONPATH /databricks/jars/rapids-4-spark_2.12-24.08.1.jar:/databricks/spark/python ``` Note that since python memory pool require installing the cudf library, so you need to install cudf library in each worker nodes `pip install cudf-cu11 --extra-index-url=https://pypi.nvidia.com` or disable python memory pool diff --git a/docs/get-started/xgboost-examples/csp/databricks/init.sh b/docs/get-started/xgboost-examples/csp/databricks/init.sh index 6dbb9052a..750a07335 100644 --- a/docs/get-started/xgboost-examples/csp/databricks/init.sh +++ b/docs/get-started/xgboost-examples/csp/databricks/init.sh @@ -1,7 +1,7 @@ sudo rm -f /databricks/jars/spark--maven-trees--ml--10.x--xgboost-gpu--ml.dmlc--xgboost4j-gpu_2.12--ml.dmlc__xgboost4j-gpu_2.12__1.5.2.jar sudo rm -f /databricks/jars/spark--maven-trees--ml--10.x--xgboost-gpu--ml.dmlc--xgboost4j-spark-gpu_2.12--ml.dmlc__xgboost4j-spark-gpu_2.12__1.5.2.jar -sudo wget -O /databricks/jars/rapids-4-spark_2.12-24.06.0.jar https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar +sudo wget -O /databricks/jars/rapids-4-spark_2.12-24.08.1.jar https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar sudo wget -O /databricks/jars/xgboost4j-gpu_2.12-1.7.1.jar https://repo1.maven.org/maven2/ml/dmlc/xgboost4j-gpu_2.12/1.7.1/xgboost4j-gpu_2.12-1.7.1.jar sudo wget -O /databricks/jars/xgboost4j-spark-gpu_2.12-1.7.1.jar https://repo1.maven.org/maven2/ml/dmlc/xgboost4j-spark-gpu_2.12/1.7.1/xgboost4j-spark-gpu_2.12-1.7.1.jar ls -ltr diff --git a/docs/get-started/xgboost-examples/on-prem-cluster/kubernetes-scala.md b/docs/get-started/xgboost-examples/on-prem-cluster/kubernetes-scala.md index 6bd7ea155..2d685ef54 100644 --- a/docs/get-started/xgboost-examples/on-prem-cluster/kubernetes-scala.md +++ b/docs/get-started/xgboost-examples/on-prem-cluster/kubernetes-scala.md @@ -40,7 +40,7 @@ export SPARK_DOCKER_IMAGE= export SPARK_DOCKER_TAG= pushd ${SPARK_HOME} -wget https://github.com/NVIDIA/spark-rapids-examples/raw/branch-24.06/dockerfile/Dockerfile +wget https://github.com/NVIDIA/spark-rapids-examples/raw/branch-24.08/dockerfile/Dockerfile # Optionally install additional jars into ${SPARK_HOME}/jars/ diff --git a/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md b/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md index c498a1d15..61df8def3 100644 --- a/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md +++ b/docs/get-started/xgboost-examples/prepare-package-data/preparation-python.md @@ -5,7 +5,7 @@ For simplicity export the location to these jars. All examples assume the packag ### Download the jars Download the RAPIDS Accelerator for Apache Spark plugin jar - * [RAPIDS Spark Package](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar) + * [RAPIDS Spark Package](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar) ### Build XGBoost Python Examples diff --git a/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md b/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md index 4e12a8342..ba4ab38d7 100644 --- a/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md +++ b/docs/get-started/xgboost-examples/prepare-package-data/preparation-scala.md @@ -5,7 +5,7 @@ For simplicity export the location to these jars. All examples assume the packag ### Download the jars 1. Download the RAPIDS Accelerator for Apache Spark plugin jar - * [RAPIDS Spark Package](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar) + * [RAPIDS Spark Package](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar) ### Build XGBoost Scala Examples diff --git a/examples/ML+DL-Examples/Spark-cuML/pca/Dockerfile b/examples/ML+DL-Examples/Spark-cuML/pca/Dockerfile index 12d00546c..deaef0ffd 100644 --- a/examples/ML+DL-Examples/Spark-cuML/pca/Dockerfile +++ b/examples/ML+DL-Examples/Spark-cuML/pca/Dockerfile @@ -18,7 +18,7 @@ ARG CUDA_VER=11.8.0 FROM nvidia/cuda:${CUDA_VER}-devel-ubuntu20.04 # Please do not update the BRANCH_VER version -ARG BRANCH_VER=24.06 +ARG BRANCH_VER=24.08 RUN apt-get update RUN apt-get install -y wget ninja-build git diff --git a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb index 40a988f60..e2c2b4a6f 100644 --- a/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb +++ b/examples/SQL+DF-Examples/micro-benchmarks/notebooks/micro-benchmarks-gpu.ipynb @@ -22,7 +22,7 @@ "import os\n", "# Change to your cluster ip:port and directories\n", "SPARK_MASTER_URL = os.getenv(\"SPARK_MASTER_URL\", \"spark:your-ip:port\")\n", - "RAPIDS_JAR = os.getenv(\"RAPIDS_JAR\", \"/your-path/rapids-4-spark_2.12-24.06.0.jar\")\n" + "RAPIDS_JAR = os.getenv(\"RAPIDS_JAR\", \"/your-path/rapids-4-spark_2.12-24.08.1.jar\")\n" ] }, { diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md index 4c733c73d..2a9fcf6cf 100644 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/README.md @@ -186,7 +186,7 @@ then do the following inside the Docker container. ### Get jars from Maven Central -[rapids-4-spark_2.12-24.06.0.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar) +[rapids-4-spark_2.12-24.08.1.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar) ### Launch a local mode Spark diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml index 7e573964a..6041cd8ce 100644 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/pom.xml @@ -25,7 +25,7 @@ user defined functions for use with the RAPIDS Accelerator for Apache Spark - 24.08.0-SNAPSHOT + 24.08.1-SNAPSHOT 1.8 @@ -37,7 +37,7 @@ cuda11 2.12 - 24.06.0 + 24.08.1 3.1.1 2.12.15 ${project.build.directory}/cpp-build diff --git a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt index ddea97125..af50f5727 100755 --- a/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt +++ b/examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt @@ -32,7 +32,7 @@ if(DEFINED GPU_ARCHS) endif() rapids_cuda_init_architectures(UDFEXAMPLESJNI) -project(UDFEXAMPLESJNI VERSION 24.08.0 LANGUAGES C CXX CUDA) +project(UDFEXAMPLESJNI VERSION 24.08.1 LANGUAGES C CXX CUDA) option(PER_THREAD_DEFAULT_STREAM "Build with per-thread default stream" OFF) option(BUILD_UDF_BENCHMARKS "Build the benchmarks" OFF) @@ -84,7 +84,7 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -w --expt-extended-lambda --expt-relax set(CUDA_USE_STATIC_CUDA_RUNTIME ON) rapids_cpm_init() -rapids_cpm_find(cudf 24.08.00 +rapids_cpm_find(cudf 24.08.10 CPM_ARGS GIT_REPOSITORY https://github.com/rapidsai/cudf.git GIT_TAG branch-24.08 diff --git a/examples/XGBoost-Examples/agaricus/notebooks/python/agaricus-gpu.ipynb b/examples/XGBoost-Examples/agaricus/notebooks/python/agaricus-gpu.ipynb index 74278239a..7be0e60f4 100644 --- a/examples/XGBoost-Examples/agaricus/notebooks/python/agaricus-gpu.ipynb +++ b/examples/XGBoost-Examples/agaricus/notebooks/python/agaricus-gpu.ipynb @@ -73,7 +73,7 @@ "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", "2022-11-30 06:57:40,550 WARN resource.ResourceUtils: The configuration of cores (exec = 2 task = 1, runnable tasks = 2) will result in wasted resources due to resource gpu limiting the number of runnable tasks per executor to: 1. Please adjust your configuration.\n", - "2022-11-30 06:57:54,195 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.06.0 using cudf 24.06.0.\n", + "2022-11-30 06:57:54,195 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.08.1 using cudf 24.08.1.\n", "2022-11-30 06:57:54,210 WARN rapids.RapidsPluginUtils: spark.rapids.sql.multiThreadedRead.numThreads is set to 20.\n", "2022-11-30 06:57:54,214 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator is enabled, to disable GPU support set `spark.rapids.sql.enabled` to false.\n", "2022-11-30 06:57:54,214 WARN rapids.RapidsPluginUtils: spark.rapids.sql.explain is set to `NOT_ON_GPU`. Set it to 'NONE' to suppress the diagnostics logging about the query placement on the GPU.\n", diff --git a/examples/XGBoost-Examples/mortgage/notebooks/python/MortgageETL.ipynb b/examples/XGBoost-Examples/mortgage/notebooks/python/MortgageETL.ipynb index 9622efb1f..02875a23a 100644 --- a/examples/XGBoost-Examples/mortgage/notebooks/python/MortgageETL.ipynb +++ b/examples/XGBoost-Examples/mortgage/notebooks/python/MortgageETL.ipynb @@ -6,10 +6,10 @@ "source": [ "## Prerequirement\n", "### 1. Download data\n", - "Dataset is derived from Fannie Mae’s [Single-Family Loan Performance Data](http://www.fanniemae.com/portal/funding-the-market/data/loan-performance-data.html) with all rights reserved by Fannie Mae. Refer to these [instructions](https://github.com/NVIDIA/spark-rapids-examples/blob/branch-24.06/docs/get-started/xgboost-examples/dataset/mortgage.md) to download the dataset.\n", + "Dataset is derived from Fannie Mae’s [Single-Family Loan Performance Data](http://www.fanniemae.com/portal/funding-the-market/data/loan-performance-data.html) with all rights reserved by Fannie Mae. Refer to these [instructions](https://github.com/NVIDIA/spark-rapids-examples/blob/branch-24.08/docs/get-started/xgboost-examples/dataset/mortgage.md) to download the dataset.\n", "\n", "### 2. Download needed jars\n", - "* [rapids-4-spark_2.12-24.06.0.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar)\n", + "* [rapids-4-spark_2.12-24.08.1.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar)\n", "\n", "\n", "### 3. Start Spark Standalone\n", @@ -17,7 +17,7 @@ "\n", "### 4. Add ENV\n", "```\n", - "$ export SPARK_JARS=rapids-4-spark_2.12-24.06.0.jar\n", + "$ export SPARK_JARS=rapids-4-spark_2.12-24.08.1.jar\n", "$ export PYSPARK_DRIVER_PYTHON=jupyter \n", "$ export PYSPARK_DRIVER_PYTHON_OPTS=notebook\n", "```\n", diff --git a/examples/XGBoost-Examples/mortgage/notebooks/python/cv-mortgage-gpu.ipynb b/examples/XGBoost-Examples/mortgage/notebooks/python/cv-mortgage-gpu.ipynb index cdc4d1ec5..fd1526467 100644 --- a/examples/XGBoost-Examples/mortgage/notebooks/python/cv-mortgage-gpu.ipynb +++ b/examples/XGBoost-Examples/mortgage/notebooks/python/cv-mortgage-gpu.ipynb @@ -63,7 +63,7 @@ "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", "2022-11-25 09:34:43,952 WARN resource.ResourceUtils: The configuration of cores (exec = 4 task = 1, runnable tasks = 4) will result in wasted resources due to resource gpu limiting the number of runnable tasks per executor to: 1. Please adjust your configuration.\n", - "2022-11-25 09:34:58,155 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.06.0 using cudf 24.06.0.\n", + "2022-11-25 09:34:58,155 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.08.1 using cudf 24.08.1.\n", "2022-11-25 09:34:58,171 WARN rapids.RapidsPluginUtils: spark.rapids.sql.multiThreadedRead.numThreads is set to 20.\n", "2022-11-25 09:34:58,175 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator is enabled, to disable GPU support set `spark.rapids.sql.enabled` to false.\n", "2022-11-25 09:34:58,175 WARN rapids.RapidsPluginUtils: spark.rapids.sql.explain is set to `NOT_ON_GPU`. Set it to 'NONE' to suppress the diagnostics logging about the query placement on the GPU.\n" diff --git a/examples/XGBoost-Examples/mortgage/notebooks/python/mortgage-gpu.ipynb b/examples/XGBoost-Examples/mortgage/notebooks/python/mortgage-gpu.ipynb index 590a68e37..f3f8ab047 100644 --- a/examples/XGBoost-Examples/mortgage/notebooks/python/mortgage-gpu.ipynb +++ b/examples/XGBoost-Examples/mortgage/notebooks/python/mortgage-gpu.ipynb @@ -84,7 +84,7 @@ "22/11/24 06:14:06 INFO org.apache.spark.SparkEnv: Registering BlockManagerMaster\n", "22/11/24 06:14:06 INFO org.apache.spark.SparkEnv: Registering BlockManagerMasterHeartbeat\n", "22/11/24 06:14:06 INFO org.apache.spark.SparkEnv: Registering OutputCommitCoordinator\n", - "22/11/24 06:14:07 WARN com.nvidia.spark.rapids.RapidsPluginUtils: RAPIDS Accelerator 24.06.0 using cudf 24.06.0.\n", + "22/11/24 06:14:07 WARN com.nvidia.spark.rapids.RapidsPluginUtils: RAPIDS Accelerator 24.08.1 using cudf 24.08.1.\n", "22/11/24 06:14:07 WARN com.nvidia.spark.rapids.RapidsPluginUtils: spark.rapids.sql.multiThreadedRead.numThreads is set to 20.\n", "22/11/24 06:14:07 WARN com.nvidia.spark.rapids.RapidsPluginUtils: RAPIDS Accelerator is enabled, to disable GPU support set `spark.rapids.sql.enabled` to false.\n", "22/11/24 06:14:07 WARN com.nvidia.spark.rapids.RapidsPluginUtils: spark.rapids.sql.explain is set to `NOT_ON_GPU`. Set it to 'NONE' to suppress the diagnostics logging about the query placement on the GPU.\n" diff --git a/examples/XGBoost-Examples/mortgage/notebooks/scala/mortgage-ETL.ipynb b/examples/XGBoost-Examples/mortgage/notebooks/scala/mortgage-ETL.ipynb index 43bad4fdb..a2725240c 100644 --- a/examples/XGBoost-Examples/mortgage/notebooks/scala/mortgage-ETL.ipynb +++ b/examples/XGBoost-Examples/mortgage/notebooks/scala/mortgage-ETL.ipynb @@ -20,14 +20,14 @@ "Refer to these [instructions](https://github.com/NVIDIA/spark-rapids-examples/blob/branch-23.12/docs/get-started/xgboost-examples/dataset/mortgage.md) to download the dataset.\n", "\n", "### 2. Download needed jars\n", - "* [rapids-4-spark_2.12-24.06.0.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar)\n", + "* [rapids-4-spark_2.12-24.08.1.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar)\n", "\n", "### 3. Start Spark Standalone\n", "Before Running the script, please setup Spark standalone mode\n", "\n", "### 4. Add ENV\n", "```\n", - "$ export SPARK_JARS=rapids-4-spark_2.12-24.06.0.jar\n", + "$ export SPARK_JARS=rapids-4-spark_2.12-24.08.1.jar\n", "\n", "```\n", "\n", diff --git a/examples/XGBoost-Examples/taxi/notebooks/python/cv-taxi-gpu.ipynb b/examples/XGBoost-Examples/taxi/notebooks/python/cv-taxi-gpu.ipynb index 1ca71c7e8..35dc78f29 100644 --- a/examples/XGBoost-Examples/taxi/notebooks/python/cv-taxi-gpu.ipynb +++ b/examples/XGBoost-Examples/taxi/notebooks/python/cv-taxi-gpu.ipynb @@ -62,7 +62,7 @@ "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", "2022-11-30 08:02:10,103 WARN resource.ResourceUtils: The configuration of cores (exec = 2 task = 1, runnable tasks = 2) will result in wasted resources due to resource gpu limiting the number of runnable tasks per executor to: 1. Please adjust your configuration.\n", - "2022-11-30 08:02:23,737 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.06.0 using cudf 24.06.0.\n", + "2022-11-30 08:02:23,737 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.08.1 using cudf 24.08.1.\n", "2022-11-30 08:02:23,752 WARN rapids.RapidsPluginUtils: spark.rapids.sql.multiThreadedRead.numThreads is set to 20.\n", "2022-11-30 08:02:23,756 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator is enabled, to disable GPU support set `spark.rapids.sql.enabled` to false.\n", "2022-11-30 08:02:23,757 WARN rapids.RapidsPluginUtils: spark.rapids.sql.explain is set to `NOT_ON_GPU`. Set it to 'NONE' to suppress the diagnostics logging about the query placement on the GPU.\n", diff --git a/examples/XGBoost-Examples/taxi/notebooks/python/taxi-ETL.ipynb b/examples/XGBoost-Examples/taxi/notebooks/python/taxi-ETL.ipynb index 911d6e8be..b00765d46 100644 --- a/examples/XGBoost-Examples/taxi/notebooks/python/taxi-ETL.ipynb +++ b/examples/XGBoost-Examples/taxi/notebooks/python/taxi-ETL.ipynb @@ -19,14 +19,14 @@ "All data could be found at https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page\n", "\n", "### 2. Download needed jars\n", - "* [rapids-4-spark_2.12-24.06.0.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar)\n", + "* [rapids-4-spark_2.12-24.08.1.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar)\n", "\n", "### 3. Start Spark Standalone\n", "Before running the script, please setup Spark standalone mode\n", "\n", "### 4. Add ENV\n", "```\n", - "$ export SPARK_JARS=rapids-4-spark_2.12-24.06.0.jar\n", + "$ export SPARK_JARS=rapids-4-spark_2.12-24.08.1.jar\n", "$ export PYSPARK_DRIVER_PYTHON=jupyter \n", "$ export PYSPARK_DRIVER_PYTHON_OPTS=notebook\n", "```\n", diff --git a/examples/XGBoost-Examples/taxi/notebooks/python/taxi-gpu.ipynb b/examples/XGBoost-Examples/taxi/notebooks/python/taxi-gpu.ipynb index 2877030cc..078d3ad5c 100644 --- a/examples/XGBoost-Examples/taxi/notebooks/python/taxi-gpu.ipynb +++ b/examples/XGBoost-Examples/taxi/notebooks/python/taxi-gpu.ipynb @@ -73,7 +73,7 @@ "Setting default log level to \"WARN\".\n", "To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).\n", "2022-11-30 07:51:19,480 WARN resource.ResourceUtils: The configuration of cores (exec = 2 task = 1, runnable tasks = 2) will result in wasted resources due to resource gpu limiting the number of runnable tasks per executor to: 1. Please adjust your configuration.\n", - "2022-11-30 07:51:33,277 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.06.0 using cudf 24.06.0.\n", + "2022-11-30 07:51:33,277 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator 24.08.1 using cudf 24.08.1.\n", "2022-11-30 07:51:33,292 WARN rapids.RapidsPluginUtils: spark.rapids.sql.multiThreadedRead.numThreads is set to 20.\n", "2022-11-30 07:51:33,295 WARN rapids.RapidsPluginUtils: RAPIDS Accelerator is enabled, to disable GPU support set `spark.rapids.sql.enabled` to false.\n", "2022-11-30 07:51:33,295 WARN rapids.RapidsPluginUtils: spark.rapids.sql.explain is set to `NOT_ON_GPU`. Set it to 'NONE' to suppress the diagnostics logging about the query placement on the GPU.\n", diff --git a/examples/XGBoost-Examples/taxi/notebooks/scala/taxi-ETL.ipynb b/examples/XGBoost-Examples/taxi/notebooks/scala/taxi-ETL.ipynb index 7f96df4bb..979d2f9a9 100644 --- a/examples/XGBoost-Examples/taxi/notebooks/scala/taxi-ETL.ipynb +++ b/examples/XGBoost-Examples/taxi/notebooks/scala/taxi-ETL.ipynb @@ -19,14 +19,14 @@ "All data could be found at https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page\n", "\n", "### 2. Download needed jar\n", - "* [rapids-4-spark_2.12-24.06.0.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.06.0/rapids-4-spark_2.12-24.06.0.jar)\n", + "* [rapids-4-spark_2.12-24.08.1.jar](https://repo1.maven.org/maven2/com/nvidia/rapids-4-spark_2.12/24.08.1/rapids-4-spark_2.12-24.08.1.jar)\n", "\n", "### 3. Start Spark Standalone\n", "Before running the script, please setup Spark standalone mode\n", "\n", "### 4. Add ENV\n", "```\n", - "$ export SPARK_JARS=rapids-4-spark_2.12-24.06.0.jar\n", + "$ export SPARK_JARS=rapids-4-spark_2.12-24.08.1.jar\n", "\n", "```\n", "\n",

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