Skip to content

[AINode] Build the result TsBlock with numpy instead of appending one value at a time #21632

[AINode] Build the result TsBlock with numpy instead of appending one value at a time

[AINode] Build the result TsBlock with numpy instead of appending one value at a time #21632

name: Cluster IT - 1C1D1A
on:
push:
branches:
- master
- 'rel/*'
- 'rc/*'
paths-ignore:
- 'docs/**'
- 'site/**'
- 'iotdb-client/client-cpp/**'
- '.github/workflows/client-cpp-package.yml'
- '.github/scripts/package-client-cpp-*.sh'
- '.github/workflows/multi-language-client.yml'
pull_request:
branches:
- master
- 'rel/*'
- 'rc/*'
- 'force_ci/**'
paths-ignore:
- 'docs/**'
- 'site/**'
- 'iotdb-client/client-cpp/**'
- '.github/workflows/client-cpp-package.yml'
- '.github/scripts/package-client-cpp-*.sh'
- '.github/workflows/multi-language-client.yml'
# allow manually run the action:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
MAVEN_ARGS: --batch-mode --no-transfer-progress
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
jobs:
AINode:
strategy:
fail-fast: false
max-parallel: 1
matrix:
os: [ ubuntu-latest ]
runs-on: [self-hosted, gpu]
steps:
- uses: actions/checkout@v5
- name: Show GPU environment
run: nvidia-smi --query-gpu=name,driver_version --format=csv
- name: IT Test
shell: bash
run: |
mvn clean verify \
-P with-integration-tests,with-ainode \
-DskipUTs \
-DintegrationTest.forkCount=1 \
-pl integration-test,iotdb-core/ainode \
-am \
-PAIClusterIT
- name: Verify AINode dependencies and Python regressions
shell: bash
working-directory: iotdb-core/ainode
run: |
AINODE_VENV_PY="$HOME/.cache/iotdb-ainode-build/ainode/bin/python"
"$AINODE_VENV_PY" - <<'PY'
import importlib.metadata as metadata
import torch
print({name: metadata.version(name) for name in ("torch", "setuptools", "pyinstaller", "transformers")})
print({"cuda": torch.version.cuda, "cuda_available": torch.cuda.is_available()})
architectures = torch.cuda.get_arch_list()
assert "sm_70" in architectures, architectures
matrix = torch.eye(2, device="cuda")
torch.testing.assert_close((matrix @ matrix).cpu(), torch.eye(2))
print({"device": torch.cuda.get_device_name(), "architectures": architectures})
PY
"$AINODE_VENV_PY" -m unittest discover -v -s tests -p 'test_dependency_security.py'
"$AINODE_VENV_PY" -m unittest discover -v -s tests -p 'test_sundial_flow_loss.py'
- name: Upload Artifact
if: failure()
uses: actions/upload-artifact@v6
with:
name: cluster-log-ainode-${{ matrix.os }}
path: integration-test/target/*-logs
retention-days: 30
- name: Upload integration test reports
if: always()
uses: actions/upload-artifact@v6
with:
name: ainode-test-reports-${{ matrix.os }}
path: integration-test/target/failsafe-reports
retention-days: 30