Offcanvas

���������

딥러닝 프레임워크 ‘3파전’··· '텐서플로우 vs 파이토치 vs JAX' 비교

오늘날 딥러닝 연구 및 개발을 주도하는 3가지 프레임워크가 있다. 각각 (1) 사용 편의성, (2) 기능 및 성숙도, (3) 엄청난 확장성으로 유명하다. 어떤 프레임워크를 사용해야 할까?  음성에 반응하는 시리나 알렉사, 스마트폰의 실시간 번역 앱, 스마트 트랙터, 창고 로봇, 자율주행차 등에 들어가는 컴퓨터 비전 기술 등 ‘딥러닝’은 크고 작은 방식으로 삶을 매일 변화시키고 있다. 그리고 거의 모든 딥러닝 애플리케이션은 3가지 프레임워크 (1) 텐서플로우, (2) 파이토치, (3) JAM 중 하나로 작성된다. 그렇다면 이 중에서 어떤 딥러닝 프레임워크를 사용해야 할까?    ‘텐서플로우’를 사용해야 할까? 1970년대와 1980년대에는 ‘IBM 제품을 샀다고 해고된 사람은 아무도 없다(Nobody ever got fired forbuying an IBM)’라는 말이 진리로 통했다. 2010년대에는 이를 ‘딥러닝에 텐서플로우를 사용했다고 해고된 사람은 아무도 없다’라고 바꿔 말할 수 있겠다. 하지만 주지하다시피 IBM은 1990년대에 접어들면서 도태됐다. 그렇다면 텐서플로우는 2015년 처음 공개된 지 7년이 지난 지금에도 여전히 경쟁력이 있을까? 확실히 그렇다. 텐서플로우가 그동안 가만히 있지 않았다. 텐서플로우 1.x는 파이썬과 매우 다른 방식으로 정적 그래프를 작성하는 게 전부였지만 텐서플로우 2.x는 ‘즉시 실행’ 모드를 사용한 모델 빌드가 가능해지면서 좀 더 파이토치 같은 느낌이 났다. 아울러 하이 레벨(high level)에서 텐서플로우는 더 쉬운 개발을 위해 케라스(Keras)를 제공하고, 로우 레벨에서는 속도를 위해 컴파일러를 최적화하는 XLA(Accelerated Linear Algebra)를 제공한다. XLA는 GPU 성능을 향상시키며, 대규모 모델 학습에 뛰어난 성능을 제공하는 구글의 TPU(Tensor Processing Units)를 활용하는 방법이기도 하다. 그리고 텐서플로우가 수년간 잘해...

딥러닝 머신러닝 인공지능 개발 라이브러리 개발 프레임워크 소프트웨어 개발 파이썬 텐서플로우 파이토치 JAX 케라스 넘파이

2022.08.31

오늘날 딥러닝 연구 및 개발을 주도하는 3가지 프레임워크가 있다. 각각 (1) 사용 편의성, (2) 기능 및 성숙도, (3) 엄청난 확장성으로 유명하다. 어떤 프레임워크를 사용해야 할까?  음성에 반응하는 시리나 알렉사, 스마트폰의 실시간 번역 앱, 스마트 트랙터, 창고 로봇, 자율주행차 등에 들어가는 컴퓨터 비전 기술 등 ‘딥러닝’은 크고 작은 방식으로 삶을 매일 변화시키고 있다. 그리고 거의 모든 딥러닝 애플리케이션은 3가지 프레임워크 (1) 텐서플로우, (2) 파이토치, (3) JAM 중 하나로 작성된다. 그렇다면 이 중에서 어떤 딥러닝 프레임워크를 사용해야 할까?    ‘텐서플로우’를 사용해야 할까? 1970년대와 1980년대에는 ‘IBM 제품을 샀다고 해고된 사람은 아무도 없다(Nobody ever got fired forbuying an IBM)’라는 말이 진리로 통했다. 2010년대에는 이를 ‘딥러닝에 텐서플로우를 사용했다고 해고된 사람은 아무도 없다’라고 바꿔 말할 수 있겠다. 하지만 주지하다시피 IBM은 1990년대에 접어들면서 도태됐다. 그렇다면 텐서플로우는 2015년 처음 공개된 지 7년이 지난 지금에도 여전히 경쟁력이 있을까? 확실히 그렇다. 텐서플로우가 그동안 가만히 있지 않았다. 텐서플로우 1.x는 파이썬과 매우 다른 방식으로 정적 그래프를 작성하는 게 전부였지만 텐서플로우 2.x는 ‘즉시 실행’ 모드를 사용한 모델 빌드가 가능해지면서 좀 더 파이토치 같은 느낌이 났다. 아울러 하이 레벨(high level)에서 텐서플로우는 더 쉬운 개발을 위해 케라스(Keras)를 제공하고, 로우 레벨에서는 속도를 위해 컴파일러를 최적화하는 XLA(Accelerated Linear Algebra)를 제공한다. XLA는 GPU 성능을 향상시키며, 대규모 모델 학습에 뛰어난 성능을 제공하는 구글의 TPU(Tensor Processing Units)를 활용하는 방법이기도 하다. 그리고 텐서플로우가 수년간 잘해...

2022.08.31

"고립돼 작업하는 문제 해결"··· 오라클, 데이터 과학 플랫폼 공개

오라클이 데이터 과학 플랫폼 영역에 진출했다. 데이터베이스 기업 오라클은 그간 개별 데이터 과학자에 중점을 두었던 기존 솔루션과 달리 협업에 특화한 클라우드 기반 데이터 과학 플랫폼을 12일 공개했다.  오라클 클라우드 데이터 사이언스 플랫폼(Oracle Cloud Data Science Platform, OCDSP)은 오라클이 2018년 인수한 데이터사이언스닷컴(DataScience.com)을 기반으로 구축됐다. 이 플랫폼은 팀 단위의 협업을 효과적으로 수행하는 데 필요한 기능을 지원하는 것이 특징이다.    이 플랫폼의 핵심 솔루션은 오라클 클라우드 인프라스트럭처 데이터 사이언스(Oracle Cloud Infrastructure Data Science, OCIDS)다. 파이썬, 텐서플로우, 케라스, 주피터 등 다양한 오픈소스 도구를 사용해 오라클 클라우드 상에서 머신러닝 모델을 설계, 학습, 관리할 수 있다.  오라클 데이터 및 AI서비스 제품 개발 부문 수석부사장 그렉 파블릭은 “네이티브 클라우드 서비스 중 기업 내 협력에 초점을 맞췄다는 점에서 동급 최초라고 할 수 있다. 데이터 과학자들의 협업 및 거버넌스를 위한 환경을 제공하는 데 특화된 솔루션이다”라고 밝혔다. 데이터 과학 프로젝트 간소화 ‘오라클 클라우드 인프라스트럭처 데이터 사이언스’는 데이터 과학 워크플로우 자동화를 특징으로 얼터릭스(Alteryx), KNIME 어낼리틱스 플랫폼(KNIME Analytics Platform), 라피드마이너(RapidMiner) 등의 다른 플랫폼들과 경쟁하고자 한다.   해당 솔루션은 AutoML 자동화 알고리즘 선택과 튜닝 기능을 제공한다. AutoML 자동화 알고리즘은 특정 사용례에 가장 적합한 알고리즘을 선택할 수 있도록 해준다. 튜닝을 통해서는 알고리즘 입력 값을 선택하거나, 모델을 미세조정할 수 있다고 파블릭은 설명했다. 방대한 양의 데이터세트로부터 예측형 특징을...

클라우드 데이터사이언스닷컴 케라스 주피터 텐서플로우 데이터과학자 데이터과학 머신러닝 파이썬 알고리즘 데이터베이스 빅데이터 오픈소스 오라클 인프라 협업 네이티브클라우드

2020.02.14

오라클이 데이터 과학 플랫폼 영역에 진출했다. 데이터베이스 기업 오라클은 그간 개별 데이터 과학자에 중점을 두었던 기존 솔루션과 달리 협업에 특화한 클라우드 기반 데이터 과학 플랫폼을 12일 공개했다.  오라클 클라우드 데이터 사이언스 플랫폼(Oracle Cloud Data Science Platform, OCDSP)은 오라클이 2018년 인수한 데이터사이언스닷컴(DataScience.com)을 기반으로 구축됐다. 이 플랫폼은 팀 단위의 협업을 효과적으로 수행하는 데 필요한 기능을 지원하는 것이 특징이다.    이 플랫폼의 핵심 솔루션은 오라클 클라우드 인프라스트럭처 데이터 사이언스(Oracle Cloud Infrastructure Data Science, OCIDS)다. 파이썬, 텐서플로우, 케라스, 주피터 등 다양한 오픈소스 도구를 사용해 오라클 클라우드 상에서 머신러닝 모델을 설계, 학습, 관리할 수 있다.  오라클 데이터 및 AI서비스 제품 개발 부문 수석부사장 그렉 파블릭은 “네이티브 클라우드 서비스 중 기업 내 협력에 초점을 맞췄다는 점에서 동급 최초라고 할 수 있다. 데이터 과학자들의 협업 및 거버넌스를 위한 환경을 제공하는 데 특화된 솔루션이다”라고 밝혔다. 데이터 과학 프로젝트 간소화 ‘오라클 클라우드 인프라스트럭처 데이터 사이언스’는 데이터 과학 워크플로우 자동화를 특징으로 얼터릭스(Alteryx), KNIME 어낼리틱스 플랫폼(KNIME Analytics Platform), 라피드마이너(RapidMiner) 등의 다른 플랫폼들과 경쟁하고자 한다.   해당 솔루션은 AutoML 자동화 알고리즘 선택과 튜닝 기능을 제공한다. AutoML 자동화 알고리즘은 특정 사용례에 가장 적합한 알고리즘을 선택할 수 있도록 해준다. 튜닝을 통해서는 알고리즘 입력 값을 선택하거나, 모델을 미세조정할 수 있다고 파블릭은 설명했다. 방대한 양의 데이터세트로부터 예측형 특징을...

2020.02.14

떠오르는 심층 신경망 API, '케라스' 알아보기

심층 신경망(deep neural networks)이 유행이라고 하지만 주요 프레임워크의 복잡성으로 인해 머신러닝을 처음 접하는 개발자는 심층 신경망을 다루기가 어려운 실정이다. 그동안 신경망 모델을 구축하기 위한 고수준 API를 개선하고 간소화하는 것을 목표로 몇 가지 제안이 나왔는데, 각 제안은 얼핏 서로 비슷해 보이지만 세부적인 면에서 차이점이 있다.   케라스(Keras)는 주요 고수준 신경망 API 가운데 하나로, 파이썬(Python)으로 작성됐으며 여러 백엔드 신경망 엔진을 지원한다. 케라스와 텐서플로우와의 관계 텐서플로우(TensorFlow) 프로젝트가 향후 예정된 텐서플로우 2.0 릴리스를 위한 고수준 API로 케라스를 채택했음을 감안하면 케라스는 최고라고 단정하지는 못하더라도 성공한 API라고 할 수 있다. 이번 기사에서는 케라스의 원칙과 구현 방법을 알아보면서 이 API가 저수준 딥러닝 API에 비해 더 나은 이유가 무엇인지를 살펴본다. 텐서플로우 1.12에서도 공식 텐서플로우 시작하기 자습서에는 텐서플로우에 내장된 고수준 케라스 API인 tf.keras가 사용된다. 반면 텐서플로우 코어 API의 경우 텐서플로우 계산 그래프, 텐서, 연산, 세션을 다뤄야 하는데, 텐서플로우를 처음 접하는 사람에게는 이해하기가 어려운 부분이 있다. 저수준 텐서플로우 코어 API를 사용할 경우 얻는 이점도 있으므로(대부분 디버깅 관련) 고수준과 저수준 텐서플로우 API를 필요에 따라 섞어 사용하면 된다.  케라스 원칙 케라스는 ▲사용자 친화성 ▲모듈형 ▲손쉬운 확장 ▲파이썬과의 연계를 기본 원칙 삼아 개발됐다. "기계가 아닌 사람을 위해 설계됐으며 인지 부하를 낮추기 위한 모범 사례에 따른다." 신경층(neural layer), 비용 함수(cost function), 옵티마이저(optimizer), 초기화 방식(initialization scheme), 활성화 함수(activation function), 정규화 방...

머신러닝 케라스 심층신경망 keras

2019.02.13

심층 신경망(deep neural networks)이 유행이라고 하지만 주요 프레임워크의 복잡성으로 인해 머신러닝을 처음 접하는 개발자는 심층 신경망을 다루기가 어려운 실정이다. 그동안 신경망 모델을 구축하기 위한 고수준 API를 개선하고 간소화하는 것을 목표로 몇 가지 제안이 나왔는데, 각 제안은 얼핏 서로 비슷해 보이지만 세부적인 면에서 차이점이 있다.   케라스(Keras)는 주요 고수준 신경망 API 가운데 하나로, 파이썬(Python)으로 작성됐으며 여러 백엔드 신경망 엔진을 지원한다. 케라스와 텐서플로우와의 관계 텐서플로우(TensorFlow) 프로젝트가 향후 예정된 텐서플로우 2.0 릴리스를 위한 고수준 API로 케라스를 채택했음을 감안하면 케라스는 최고라고 단정하지는 못하더라도 성공한 API라고 할 수 있다. 이번 기사에서는 케라스의 원칙과 구현 방법을 알아보면서 이 API가 저수준 딥러닝 API에 비해 더 나은 이유가 무엇인지를 살펴본다. 텐서플로우 1.12에서도 공식 텐서플로우 시작하기 자습서에는 텐서플로우에 내장된 고수준 케라스 API인 tf.keras가 사용된다. 반면 텐서플로우 코어 API의 경우 텐서플로우 계산 그래프, 텐서, 연산, 세션을 다뤄야 하는데, 텐서플로우를 처음 접하는 사람에게는 이해하기가 어려운 부분이 있다. 저수준 텐서플로우 코어 API를 사용할 경우 얻는 이점도 있으므로(대부분 디버깅 관련) 고수준과 저수준 텐서플로우 API를 필요에 따라 섞어 사용하면 된다.  케라스 원칙 케라스는 ▲사용자 친화성 ▲모듈형 ▲손쉬운 확장 ▲파이썬과의 연계를 기본 원칙 삼아 개발됐다. "기계가 아닌 사람을 위해 설계됐으며 인지 부하를 낮추기 위한 모범 사례에 따른다." 신경층(neural layer), 비용 함수(cost function), 옵티마이저(optimizer), 초기화 방식(initialization scheme), 활성화 함수(activation function), 정규화 방...

2019.02.13

칼럼 | 성공적인 인공지능(AI) 적용을 위한 단계

이번 달 칼럼은 Mariya Yao, Marlene Jia, Adelyn Zhou의 저서 ‘Applied Artificial Intelligence – A Handbook for Business Leaders’ 중에서 기업의 성공적인 인공지능(AI)전략 수립에 대한 부분을 요약 정리했습니다. AI를 기업의 비즈니스에 적용할 기가 막힌 아이디어가 있다고 해도 이를 기업에 적용 가능한 솔루션으로 성공적으로 구현하기 위해서는 기업 구성원의 마음가짐 변화와 추진을 위한 적극적인 리더십의 확보, 그리고 기업 업무 전반에 걸친 지원팀의 구성이 선결되어야 한다. AI 적용을 비롯한 기업의 디지털 트랜스포메이션이 성공하기 위해서는 데이터와 IT 기술 인프라를 통합하여야 하며 데이터와 인프라에 대한 전반적인 통합 및 관리 능력을 확보하지 못한 상황이라면 섣불리 AI를 적용하겠다고 뛰어드는 것은 바람직하지 않다. 기업이 이미 빅데이터를 효과적으로 활용할 수 있는 기술과 업무 응용 능력을 갖추었다고 판단되지 않으면 AI 적용은 시기상조다. 데이터에 대한 이해와 활용능력이 없이 AI 도입을 추진하는 것은 성공하기 어렵다. 그리고 기업 오너 또는 경영진이 스스로 통찰력과 판단력이 뛰어나다고 과신하고 조직 전체가 상명하복의 문화에 젖어 있다면 성공적인 AI의 적용이 어려워진다. 기업 경영진이 데이터와 팩트에 기반한 의사결정이 직관에 의한 결정보다 미래의 비즈니스를 위해 더 효율적이라고 공감할 때가 AI 도입을 추진해야 할 시점이다. 아울러 성공적인 AI의 도입을 위해서는 기업 전 조직의 적극적인 협조가 필요하므로 AI 도입에 따른 일부 부서의 두려움과 반감을 불식시키는 공감대의 형성이 선결되어야 한다. AI 도입을 위한 기업 문화의 형성이 이루어졌다면 본격적으로 기술적인 문제에 대한 접근이 필요하다. AI의 구현을 위한 머신러닝을 포함한 기술적 역량은 기업의 기존 전통적인 정보시스템을 성공적으로 구현하고 운영한 기술적 역량과는 근본적으로...

CIO Adelyn Zhou Marlene Jia Mariya Yao 케라스 파이토치 텐서플로 디지털 변혁 정철환 인공지능 TCO Applied Artificial Intelligence – A Handbook

2018.10.01

이번 달 칼럼은 Mariya Yao, Marlene Jia, Adelyn Zhou의 저서 ‘Applied Artificial Intelligence – A Handbook for Business Leaders’ 중에서 기업의 성공적인 인공지능(AI)전략 수립에 대한 부분을 요약 정리했습니다. AI를 기업의 비즈니스에 적용할 기가 막힌 아이디어가 있다고 해도 이를 기업에 적용 가능한 솔루션으로 성공적으로 구현하기 위해서는 기업 구성원의 마음가짐 변화와 추진을 위한 적극적인 리더십의 확보, 그리고 기업 업무 전반에 걸친 지원팀의 구성이 선결되어야 한다. AI 적용을 비롯한 기업의 디지털 트랜스포메이션이 성공하기 위해서는 데이터와 IT 기술 인프라를 통합하여야 하며 데이터와 인프라에 대한 전반적인 통합 및 관리 능력을 확보하지 못한 상황이라면 섣불리 AI를 적용하겠다고 뛰어드는 것은 바람직하지 않다. 기업이 이미 빅데이터를 효과적으로 활용할 수 있는 기술과 업무 응용 능력을 갖추었다고 판단되지 않으면 AI 적용은 시기상조다. 데이터에 대한 이해와 활용능력이 없이 AI 도입을 추진하는 것은 성공하기 어렵다. 그리고 기업 오너 또는 경영진이 스스로 통찰력과 판단력이 뛰어나다고 과신하고 조직 전체가 상명하복의 문화에 젖어 있다면 성공적인 AI의 적용이 어려워진다. 기업 경영진이 데이터와 팩트에 기반한 의사결정이 직관에 의한 결정보다 미래의 비즈니스를 위해 더 효율적이라고 공감할 때가 AI 도입을 추진해야 할 시점이다. 아울러 성공적인 AI의 도입을 위해서는 기업 전 조직의 적극적인 협조가 필요하므로 AI 도입에 따른 일부 부서의 두려움과 반감을 불식시키는 공감대의 형성이 선결되어야 한다. AI 도입을 위한 기업 문화의 형성이 이루어졌다면 본격적으로 기술적인 문제에 대한 접근이 필요하다. AI의 구현을 위한 머신러닝을 포함한 기술적 역량은 기업의 기존 전통적인 정보시스템을 성공적으로 구현하고 운영한 기술적 역량과는 근본적으로...

2018.10.01

클라우드보다 저렴하게!··· 딥러닝용 GPU 서버 커스텀 제작기

딥러닝 전문가들이라면 누구나 한번쯤 클라우드에서 벗어나 자체적인 딥러닝 머신을 제작하고 싶다는 생각을 해본 적 있을 것이다. 클라우드는 딥러닝에 입문하기에는 이상적인 공간이다. 또 대규모 딥러닝 모형을 교육하는 데에도 적합하다. 그러나 경우에 따라서는 자체적인 딥러닝 머신이 있는 쪽이 훨씬 더 많은 비용을 절감할 수 있기도 하다. 비용이 늘 저렴하다는 것은 아니다. 딥러닝 모델에 필요한 컴퓨터 및 고사양 GPU의 가격은 적게는 1,500 달러에서부터 2,000달러 이상에 이른다. 그렇다고 해도, 한 번에 며칠씩 딥러닝 모형 교육에 쏟는 사람이라면, 3~4달이면 본전을 되찾고도 남을 것이다. 특히 클라우드 스토리지 비용이나 진입 비용, 컴퓨트 시간 등을 고려한다면 더욱 그렇다. 이 글에서는 올해 초 직접 딥러닝 머신을 제작했던 경험을 소개하고, 그 과정에서 내려야 할 선택들, 그리고 비용 등에 대해 이야기해 보고자 한다. 가격은 2017년 12월 기준 아마존 가격으로 산정했다. 특히 딥러닝에 ‘본격적으로’ 접근하고자 하는 이라면(‘본격적으로’ 라는 단어가 더 큰 데이터 세트를 대상으로 리서치를 진행하는 것이든, 캐글(Kaggle) 대회에 참가하는 것을 의미하던 말이다), 자체적인 딥러닝 머신을 제작하는 결정을 더욱 장려할 만 하다. 데이터 세트의 분량이 거대해지고, 수많은 GPU가 필요로 해 질 때까지는 자체적인 딥러닝 머신을 이용하는 것이 최선일 수 있다. 그러나 어느 정도 규모가 커지고 나면, 그 때부터는 다시금 클라우드로 돌아가야 한다. 그 때는 컴퓨트 타임 비용을 지불할 수 있도록 지갑도 두둑하게 준비해 놓는 것이 좋을 것이다. 딥러닝 PC 제작: GPU 와 CPU 딥러닝 머신 제작 과정에서 가장 중요한, 그리고 아마 가장 큰 비용이 걸리는 결정은 어떤 그래픽 카드를, 즉 어떤 GPU를 구매할 것이냐이다. 하지만 적어도 현재로써는 이 선택은 그다지 어렵지 않다. 7...

DIY 텐서플로우 GPU 서버 아나콘다 케라스 1080Ti

2018.01.10

딥러닝 전문가들이라면 누구나 한번쯤 클라우드에서 벗어나 자체적인 딥러닝 머신을 제작하고 싶다는 생각을 해본 적 있을 것이다. 클라우드는 딥러닝에 입문하기에는 이상적인 공간이다. 또 대규모 딥러닝 모형을 교육하는 데에도 적합하다. 그러나 경우에 따라서는 자체적인 딥러닝 머신이 있는 쪽이 훨씬 더 많은 비용을 절감할 수 있기도 하다. 비용이 늘 저렴하다는 것은 아니다. 딥러닝 모델에 필요한 컴퓨터 및 고사양 GPU의 가격은 적게는 1,500 달러에서부터 2,000달러 이상에 이른다. 그렇다고 해도, 한 번에 며칠씩 딥러닝 모형 교육에 쏟는 사람이라면, 3~4달이면 본전을 되찾고도 남을 것이다. 특히 클라우드 스토리지 비용이나 진입 비용, 컴퓨트 시간 등을 고려한다면 더욱 그렇다. 이 글에서는 올해 초 직접 딥러닝 머신을 제작했던 경험을 소개하고, 그 과정에서 내려야 할 선택들, 그리고 비용 등에 대해 이야기해 보고자 한다. 가격은 2017년 12월 기준 아마존 가격으로 산정했다. 특히 딥러닝에 ‘본격적으로’ 접근하고자 하는 이라면(‘본격적으로’ 라는 단어가 더 큰 데이터 세트를 대상으로 리서치를 진행하는 것이든, 캐글(Kaggle) 대회에 참가하는 것을 의미하던 말이다), 자체적인 딥러닝 머신을 제작하는 결정을 더욱 장려할 만 하다. 데이터 세트의 분량이 거대해지고, 수많은 GPU가 필요로 해 질 때까지는 자체적인 딥러닝 머신을 이용하는 것이 최선일 수 있다. 그러나 어느 정도 규모가 커지고 나면, 그 때부터는 다시금 클라우드로 돌아가야 한다. 그 때는 컴퓨트 타임 비용을 지불할 수 있도록 지갑도 두둑하게 준비해 놓는 것이 좋을 것이다. 딥러닝 PC 제작: GPU 와 CPU 딥러닝 머신 제작 과정에서 가장 중요한, 그리고 아마 가장 큰 비용이 걸리는 결정은 어떤 그래픽 카드를, 즉 어떤 GPU를 구매할 것이냐이다. 하지만 적어도 현재로써는 이 선택은 그다지 어렵지 않다. 7...

2018.01.10

IDG 설문조사

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.

10.4.0.31