From patchwork Thu Dec 8 19:35:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srikanth Yalavarthi X-Patchwork-Id: 120595 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 82BBCA0032; Thu, 8 Dec 2022 20:35:39 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 30CD5410FB; Thu, 8 Dec 2022 20:35:39 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id AF4FA4003F for ; Thu, 8 Dec 2022 20:35:37 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B8J8KK6001363 for ; Thu, 8 Dec 2022 11:35:36 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=pfpt0220; bh=EWI8q7fqGFVozgR5QMRdDj8QnNq0x/WWX0laoOtlPLM=; b=YnEFKItC95iXT5wMLnbkZpXsRURKixSQk7fsgEoRnNcHkhSQZ4uBawIy6ixW2C6M9jER wY25lu1d6qtlW9x8HoK0/OxYRKPQrXWaucsB/vC/qA6mTfCItJaSAm8GeLWBY/f09LvS 4aychJdanGCAXV/ylcVJnkkV8X104D2SMKcA4+NPz49WXlp11AcrGINFezLW7K/TmTS2 DhgEPcFT2VIGefRjydqin6xZrQiZ2nuMmdV4l8ZjMLeQSqxA9v0DXRkIioe+JmKCSywF JojrDx51oasuryIATntFLvjiMB0uBQhFosDkic706VLPgZXtz9Ry7AqnEihwJ/v9R6mP Hg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3mb22svkjj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Thu, 08 Dec 2022 11:35:36 -0800 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 8 Dec 2022 11:35:35 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Thu, 8 Dec 2022 11:35:35 -0800 Received: from ml-host-33.caveonetworks.com (unknown [10.110.143.233]) by maili.marvell.com (Postfix) with ESMTP id D47183F7058; Thu, 8 Dec 2022 11:35:34 -0800 (PST) From: Srikanth Yalavarthi To: CC: , , , , Srikanth Yalavarthi Subject: [PATCH v1 0/4] implementation of ML common code Date: Thu, 8 Dec 2022 11:35:28 -0800 Message-ID: <20221208193532.16718-1-syalavarthi@marvell.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: ttUWIgSt-4h1xlRwLnF8nGjNBwY9Dosn X-Proofpoint-GUID: ttUWIgSt-4h1xlRwLnF8nGjNBwY9Dosn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-08_11,2022-12-08_01,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Machine Learning common code ---------------------------- This patch series implements the common ML code that can be used by ML drivers. Common code include functions to convert ML IO type to string, IO format type to string, function get size of ML IO type, and functions for converting data types from higher precision to lower precision and vice-versa. Data type conversion functions support handling float32, float16, bfloat16, uint8, int8, uint16 and int16. Two versions of conversion functions are implemented in the series, generic scalar version and vector version using Arm NEON intrinsics. When compiling DPDK for platform supporting Arm NEON, only NEON version of the routines would be enabled. Compilation would fall back to generic scalar versions on platform like x86_64 / PowerPC etc., that don't support Arm NEON. Srikanth Yalavarthi (4): common/ml: add initial files for ML common code common/ml: add data type conversion routines common/ml: add generic type conversion functions common/ml: add Arm NEON type conversion routines MAINTAINERS | 8 + drivers/common/meson.build | 1 + drivers/common/ml/meson.build | 27 + drivers/common/ml/ml_utils.c | 238 +++++++ drivers/common/ml/ml_utils.h | 283 ++++++++ drivers/common/ml/ml_utils_generic.c | 716 ++++++++++++++++++++ drivers/common/ml/ml_utils_generic.h | 23 + drivers/common/ml/ml_utils_neon.c | 950 +++++++++++++++++++++++++++ drivers/common/ml/ml_utils_neon.h | 23 + drivers/common/ml/version.map | 25 + 10 files changed, 2294 insertions(+) create mode 100644 drivers/common/ml/meson.build create mode 100644 drivers/common/ml/ml_utils.c create mode 100644 drivers/common/ml/ml_utils.h create mode 100644 drivers/common/ml/ml_utils_generic.c create mode 100644 drivers/common/ml/ml_utils_generic.h create mode 100644 drivers/common/ml/ml_utils_neon.c create mode 100644 drivers/common/ml/ml_utils_neon.h create mode 100644 drivers/common/ml/version.map --- 2.17.1