한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Android Things 1.0 시작해보세요
2018년 5월 12일 토요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 양찬석(Google)
님이 참여해 주셨습니다>
게시자:
Dave Smith
, IoT 디벨로퍼 어드보케
Android Things는 구글이 개발하고 관리하는 사물 인터넷(IoT) 기기를 위한 OS 입니다. 안드로이드 기반으로 만들어져 쉽게 사용할 수 있고, 사물 인터넷(IoT) 기기를 대규모로 만들어 배포하고 안전하게 관리 할 수 있는 다양한 기능을 제공합니다. 인증된 하드웨어 생태계, 풍부한 개발자 API 그리고 Google의 백엔드 인프라 기반의 소프트웨어 업데이트 등 제품 개발 외적으로 힘든 작업을 대신 수행해 줍니다. 여러분은 제품 개발에만 전념할 수 있습니다.
개발자 미리보기의 SDK 다운로드가 100,000회를 넘었고, 큰 하드웨어 제조사에서 개인 개발자까지 다양한 파트너들이 Android Things를 통해 다양한 제품을 만들고 있습니다. 구글은 보다 장기적인 관점에서 IoT 생태계를 지원하기 위해 오늘 (주> 2018년 5월 8일) Android Things 1.0을 출시합니다. 개발자의 피드백과 참여는 1.0 버전을 개발하는 과정에서 매우 중요한 역할을 했으며 Issue Tracker, 워크샵 이벤트 및 Google+ 커뮤니티를 통해 피드백을 보내주신 10,000명 이상의 개발자에게 다시 한 번 감사 드립니다.
강력한 성능의 프로덕션 하드웨어
NXP i.MX8M, Qualcomm SDA212, Qualcomm SDA624 및 MediaTek MT8516 하드웨어 플랫폼 기반의 새로운 System-on-Module(SoM)에 대한 지원을 발표합니다. 이들 모듈은 3년 동안 최신 업데이트가 제공되는 것이 보증되었고, 프로덕션 용도로 인증되었습니다. Android Things 기반으로 만들어진 프로토타입을 시장에 출시하기가 더욱 쉬워졌습니다. 이들 SoM을 위한 개발 하드웨어 및 참조 디자인은 몇 개월 안에 발표될 예정입니다.
NXP, Qualcomm 및 MediaTek이 내놓은 새로운 SoM
Raspberry Pi 3 Model B 및 NXP i.MX7D 기기는 프로토타입을 위한 개발자 하드웨어로 계속 지원될 것입니다. NXP i.MX6UL 기기에 대한 지원은 중단될 것입니다. 프로덕션과 프로토타입 하드웨어 간의 차이점에 대한 자세한 내용은 업데이트된
지원되는 플랫폼
페이지를 참조하세요.
안전한 소프트웨어 업데이트
Android Things의 철학 중 하나는 시간이 지나도 기기가 안전하게 유지되어야 한다는 것 입니다. 이를 위해 필요한 시기에 소프트웨어 업데이트가 이루어질 수 있도록 OTA 지원이 꼭 필요합니다. 프로덕션 하드웨어의 경우 플랫폼 차원에서 앱 업데이트 및 보안 패치가 지원되며,
자동 업데이트
는 기본적으로 모든 기기에 대해 활성화됩니다. 각각의 장기 지원 버전에 대해 Google은 무료로 안정성 수정 및 보안 패치를 3년 동안 제공하며, 지원 연장을 위한 추가 옵션도 있습니다. 공식 지원 기간이 끝난 이후에도 여전히 앱 업데이트를 기기에 계속 푸시할 수 있습니다. 소프트웨어 업데이트 지원에 대한 자세한 내용은
프로그램 정책
을 참조하세요.
비상업적 용도로 Android Things Console을 소프트웨어 업데이트에 사용하는 것은 활성 기기 100대로 제한됩니다. Android Things가 실행되는 상업용 제품을 출시하려는 개발자는 Google과의
배포 계약
에 서명하여 기기 제한을 제거해야 합니다. Android Things
SDK 라이선스 계약
및
Console 서비스 약관
의 업데이트된 약관을 검토하세요.
하드웨어 구성
Android Things Console
에는 하드웨어 주변 장치를 구성할 수 있는 새로운 인터페이스가 포함되었습니다. 지원하는
주변 장치 I/O( Peripheral I/O)
와 기기 속성(예: GPIO 저항기 및 I2C 버스 속도)등을 이미지 빌드 타임에 설정해 이미지를 만들 수 있습니다. 더 많은 주변 장치 하드웨어 구성을 포함할 수 있도록 이 기능은 계속 확장될 것입니다.
프로덕션 준비
지난 몇 개월 동안 Android Things기반 제품을 시장에 출시하기 위해 파트너들과 긴밀히 협력했습니다.
LG
및
iHome
의 스마트 스피커와
Lenovo
,
LG 및 JBL의 스마트 디스플레이가 있으며, 이들 제품은 Google 어시스턴트 및 Google Cast와 같은 다양한 기능을 제공합니다. 이들 제품은 올해 7월 안으로(주> 미국 현지 기준 / 한국 출시는 미정) 발매될 예정입니다.
스타트업과 에이전시들도 Android Things를 사용하여 다양한 프로토타입을 만들고 있습니다. 다음은 주목할 만한 몇 가지 예입니다.
Byteflies:
웨어러블 디바이스의 건강 데이터를 클라우드로 안전하게 전송하는 도킹 스테이션입니다.
Mirego
: 몬트리올 번화가의 공용 사진 부스에서 운영되는 대형 사진 디스플레이의 네트워크입니다.
구글은 Android Things를 활용한 새로운 제품을 만들고 있는 분들과 협력하고 싶습니다! 기술 지원 및 제품 제작 지원을 위해 Android Things 팀과 제휴하는 특별 한정 프로그램을 도입 중입니다. 좌석이 제한되어 있으며 모든 사람을 다 받을 수는 없습니다. 더 자세히 알아보시려면
링크
를 통해 저희에게 알려주세요.
Android Things 1.0의 전체
출시 노트
를 살펴보시고,
Android Things Console
을 살펴보세요. 1.0 시스템 이미지로 프로덕션을 위한 기기 검증을 시작할 수 있습니다. 플랫폼에 대해 자세히 알아보려면
개발자 사이트
를 살펴보세요. 개발 키트, 샘플 코드 및 커뮤니티 프로젝트를 시작하려면
androidthings.withgoogle.com
을 탐색해 보세요. 마지막으로, Google+의
Google IoT 개발자 커뮤니티
에 가입해서 Android Things로 무엇을 만들고 있는지 저희에게 알려주세요!
Google I/O 2018: Android의 새로운 기능
2018년 5월 12일 토요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는 김태호(Google)
님이 참여해 주셨습니다>
게시자: Stephanie Cuthbertson, Android 제품 관리 책임자
지난 10년간 Android가 기하급수적으로 성장함과 동시에 개발자 커뮤니티의 규모도 함께 성장했습니다. 중국, 인도, 브라질과 같은 국가에서는 안드로이드 스튜디오를 사용하는 개발자 수가 2년 만에 거의 3배나 증가했습니다. 이와 같은 성장세를 보면서, 우리는 개발자 환경에 적극 투자해야 한다는 책임감을 훨씬 더 크게 느끼고 있습니다. Google은 개발자의 피드백에 힘입어 모바일 앱 개발을 쉽고 빠르게 하고, 앱 크기를 대폭 줄여 더 많은 사용자를 확보할 수 있도록 하며, 사용자의 참여도를 높여 앱을 지속적으로 사용하게끔 노력해왔습니다. 또한, Android Things가 어느덧 1.0으로 업그레이드되는 순간을 맞이하게 되어 무척 설렙니다. 주요 소비재부터 멋진 원격 조종 차량까지, 상상할 수 있는 모든 걸 실제로 개발할 새로운 기회를 만들어줄 테니까요. 개발자 기조연설(Developer Keynote)을 통해 이와 같은 핵심 주제들에 대해 더 자세히 알아보도록 하겠습니다.
개발: 모바일 개발을 쉽고 빠르게
Android Jetpack
— 오늘 저희는 더욱 빠른 앱 개발을 도와주는
Android Jetpack
을 발표했습니다. Android Jetpack은 차세대 Android 컴포넌트로, 이전 버전과의 호환성을 보장하면서도 즉시 업데이트가 가능한 서포트 라이브러리의 장점을 더 큰 규모의 구성 요소 집합으로 묶어, 강력하고 품질이 좋은 앱을 빠르고 쉽게 만들 수 있도록 해 줍니다. Android Jetpack에서 백그라운드 작업, 앱 네비게이션, 생명주기(Lifecycle) 등을 관리해주므로, 개발자들은 이와 같은 작업을 처리하기 위한 번잡한 코드를 작성하는 대신 훌륭한 앱을 만드는 데 더욱 집중할 수 있습니다. Android Jetpack은 Kotlin에서도 문제없이 작동하므로, Android KTX를 사용하면 코드를 훨씬 더 간결하게 줄일 수 있습니다. Android Jetpack 구성 요소로는 WorkManager, Paging, Navigation, Slices가 있습니다.
Kotlin
—
작년에 Kotlin 지원 사실을 발표한 이후로, 개발자 커뮤니티에서는 이를 폭넓게 받아들였습니다. Android 개발에 Kotlin을 사용해본 개발자 중 95%가 매우 높은 만족도를 보였다는 점이 가장 중요한 사항입니다. Kotlin을 사용하는 개발자가 많아질수록 그 수치도 더욱 올라갑니다. Play Store 내에서 Kotlin을 사용하여 개발된 앱의 수는 작년에 6배나 증가했습니다. 전문 개발자 중 35%가 Kotlin을 사용하며 그 수는 매달 증가하고 있습니다. 라이브러리, 도구, 런타임, 문서, 교육 등에 걸쳐 Kotlin 개발자 환경 개선은 계속됩니다. Kotlin 개발자 환경의 최적화를 위한 Android Jetpack의 일부로서
Android KTX
를 오늘 출시합니다. Android Studio, Lint 지원, R8 최적화와 함께 도구 지원도 계속됩니다. Kotlin으로 빌드한 앱이 더 빠르게 실행되도록 Android P에서는 ART(Android Runtime)를 한층 더 세밀하게 조정했습니다. 우리는 공식 문서를 통해 Kotlin 코드 스니펫을 발표했으며 오늘
API 참조 문서
의 Kotlin 버전을 게시할 예정입니다. 이번 주 초에는
Udacity에 Kotlin 부트캠프
를 새로 선보였는데, 이는 Kotlin을 처음 접하는 개발자에게 유용한 자료입니다. 마지막으로, 현재
Google 개발자를 위한 전문가 프로그램
에 Kotlin 전문 과정이 있습니다. 아직 Kotlin을 사용해 본 적 없는 개발자라면
한번 사용
해보시기 바랍니다.
Android Studio 3.2 Canary
—
Android Studio 3.2
에서는 비주얼 Navigation Editor와 새로운 코드 리팩토링 도구를 포함한 Android Jetpack용 도구를 제공합니다. Canary 릴리스에는 새로운 Android App Bundle 형식, Android Emulator의 빠른 실행을 위한 Snapshots, 다운로드 및 설치 앱 코드 크기 줄이기 위한 새로운 R8 옵티마이저, 배터리 수명에 앱이 미치는 영향을 측정하는 새로운 Energy Profiler 등을 만들기 위한 빌드 도구도 포함됩니다. Canary 채널
다운로드 페이지
에서 Android Studio 3.2 최신 버전을 다운로드할 수 있습니다.
배포: 앱 크기의 대폭 축소
Android App Bundle 및 Google Play Dynamic Delivery
— Android를 위한 새로운 앱 모델을 소개합니다.
Android App Bundle
이라는 새로운 게시 형식으로 앱 크기를 대폭 줄여보세요. 이제는 Android Studio에서 개발자가 임의의 기기에 대해 앱에 필요한 모든 것, 즉 모든 언어, 모든 기기 화면 크기, 모든 하드웨어 아키텍처가 들어 있는 앱 번들을 빌드하게 됩니다. 그러면 사용자가 해당 앱을 다운로드하는 시점에 Google Play의 새로운 Dynamic Delivery는
오로지
사용자의 기기와 일치하는 코드와 리소스만 전달합니다. 따라서 Play Store에 표시되는 설치 크기가 작아져 사람들이 앱을 더 빠르게 다운로드할 수 있어 기기의 저장 공간을 절약할 수 있습니다.
(왼쪽) 이전 APK를 통해 기기에 전달되는 모든 리소스의 예.
(오른쪽) 기기에 필요한 것만 제공하는 Dynamic Delivery의 예.
Android App Bundle을 통한 동적 기능
— Android App Bundle은 모듈화도 지원하므로 설치 중이 아니라 온 디맨드 방식으로 기능을 제공할 수 있습니다. 최신 Android Studio Canary 릴리스에서는 동적 기능 모듈을 빌드할 수 있습니다.
베타 프로그램
에 참여해 Google Play에 빌드한 모듈을 게시해 보세요.
Google Play Console
—
Play Console
의 새로운 기능과 보고서를 통해 앱의 성능을 향상하고 비즈니스를 성장시킬 수 있습니다. 대시보드, 통계, Android 핵심 요소, 출시 전 보고서, 사용자 확보 보고서, 구독 대시보드에 대한
개선 사항을 읽어보세요
. 새로운 게시 형식인 Android App Bundle을 사용하여 앱을 업로드, 테스트, 게시할 수도 있습니다.
Google Play Instant
— Google Play Instant는 Play Store, 검색 엔진, 소셜 미디어 그리고
링크를 누를 수 있는 대부분의 장소에서 전 세계적으로 10억 대 이상의 기기에서 지원됩니다. 빠른 실행 앱을 더욱 쉽게 빌드할 수 있도록, 우리는 이번 주에 Unity 플러그인과 Cocos 크리에이터와의 베타 통합 릴리스를 출시할 예정입니다. 우리는 최근에 Google Play Instant와 애드워즈의 호환성 테스트를 시작했으며, 이에 따라 사용자는
Universal App 캠페인
이 실시되는 모든 채널을 통해 광고에서 바로 게임을 즐길 수 있습니다.
몰입도: 사용자가 계속 앱을 이용하도록 하는 원동력
Slices
—
Slices
는 앱과 Android 전체에서 제공되거나 Google 노출 면 내에서 제공되는 풍부하고 동적인 대화식 콘텐츠를 표시하는 UI 템플릿입니다. Slices는 라이브 데이터, 스크롤하는 콘텐츠, 인라인 작업, 앱으로의 딥 링크 연결을 포함할 수 있으므로, 사용자가 음악 재생부터 예약 업데이트 정보 확인까지 모든 기능을 사용할 수 있습니다. Slices는 전환과 슬라이더 같은 대화식 컨트롤도 포함할 수 있습니다. 지금 바로 Slices 빌드를
시작
할 수 있으며 빌드하면 이내 자동으로 나타나기 시작합니다.
Actions
— Actions는 사람들이 딱 알맞은 순간에 앱을 쉽게 사용할 수 있도록 앱의 기능과 콘텐츠에 더욱 쉽게 접근할 수 있게 해주는 새로운 방식입니다. Google 검색 앱, Play Store, Google 어시스턴트, 런처와 같은 여러 Google 및 Android 노출 면에 걸쳐 사용 현황과 관련성을 기준으로
App Actions
가 사용자에게 표시됩니다. App Actions는 곧 모든 개발자가 시험 사용할 수 있도록 제공될 예정이므로, 제공 시 알림 메시지를 받으려면
여기서 등록
하세요. 앱과 함께 사용할 수 있는
Conversational Action
을 선택적으로 빌드할 수도 있습니다. Conversational Action은 스피커와 스마트 디스플레이 같은 다양한 어시스턴트 지원 기기에서 작동합니다. 두 가지 유형의 Actions는 모두
인텐트
의 새로운 공통 카탈로그를 사용합니다.
더욱 스마트해진 기기: IoT 기기를 위한 강력한 플랫폼
Android Things 1.0
—
Android Thins
는 Google의 관리되는 OS이며 개발자는 이를 통해 사물 인터넷(IoT) 기기를 대규모로 빌드하고 유지관리할 수 있습니다. 올해 초 CES에서 우리는 Lenovo, Harman, LG, iHome이 모두 Android Things에 의해 구동되는
어시스턴트 사용 제품
을 만들 것이라고 발표했습니다.
Developer Preview의 SDK 다운로드가 100,000회를 넘고 10,000여 명의 개발자로부터 피드백을 받은 후 우리는 이번 주에
Android Things 1.0
을 발표했습니다. 현재 3년간의 장기간 지원 보장과 지원 기간 연장을 위한 추가 옵션을 포함하여 플랫폼에서 새로운 SoM(System-on-Module)이 지원되므로, 더 쉽게 프로토타입에서 프로덕션 단계로 진행할 수 있습니다. 과거 그 어느 때보다도 더 완벽한 제품 개발을 위해, 함께 제공되는 Android Things Console 역시 프로덕션 준비가 완료된 상태입니다. 개발자는 이 콘솔을 사용하여 Google에서 제공하는 최신 안정성 수정 코드와 보안 업데이트를 이용해 기기를 쉽게 관리하고 업데이트할 수 있습니다.
Android Things를 시작하려면 Google의
개발자 사이트
와 새로운
커뮤니티 허브
를 방문해 키트, 샘플 코드, 커뮤니티 프로젝트를 두루 살펴보고
Google의 IoT 개발자 커뮤니티
에 참여하여 계속 최신 정보를 접하시기 바랍니다. 우리는 기술 지도 및 제품 제작 지원을 위해 Android Things 팀과 제휴하는 한정 프로그램을 도입했습니다. 귀사에서도 관심이 있으시면
OEM 파트너 프로그램
에 등록하시기 바랍니다.
이처럼 새롭게 발전된 모든 사항 외에도, 우리는
Women Techmakers
및
GDG
(Google Developer Group)와 같은 프로그램을 통해 140개국 이상에서 개발자 커뮤니티를 넓히고 확장하는 중입니다.
Google Developers Certification
같은 교육 프로그램에 투자하여 Udacity와 기타 파트너를 통해 더 많은 교육 과정을 개설함으로써 개발자의 기술 역량 강화에 도움을 드리고 있습니다. 현재 15개 국가의
50개 에이전시
에서 225개 Google Developers Agency Program 회원이 Android Certified 자격을 취득했습니다. Google Developers Experts Program의 일환으로, 현재 전 세계적으로 개발자, 스타트업, 기업의 혁신적 앱 빌드 및 출시를 적극 지원하는
90여 Android 개발 전문가
를 보유하고 있기도 합니다.
우리는 또한 최고의 앱 및 게임 개발자가 내놓는 훌륭한 결과물의 진가를 인정하는 활동도 계속하고 있습니다. 우리는 올해로 3회째를 맞이하는 연례 Google Play Awards 시상식을 개최했습니다. 전반적인 품질, 강력한 설계, 기술적 성능, 혁신성에 중점을 두어 Android에서 맛볼 수 있는 최고의 경험을 선사한 쟁쟁한 작품들이 후보작으로 올랐습니다.
수상작과 후보작
을 확인해 보세요.
Google I/O
중에 참석자와 시청자는 48개 Android 및 Play 주제별 세션을 통해 심층적으로 살펴볼 기회가 있습니다. 보내주신 모든 훌륭한 피드백에 감사드리며, 우리가 다음에 가야 할 방향에 대해 계속 관심을 가지고 조언해 주시기 바랍니다.
업데이트된 Google I/O 2018 일정을 알아보세요
2018년 5월 8일 화요일
Google I/O 2018 일정이 대폭 업데이트되었습니다!
추가적인
세션
및
코드랩
과 함께 새로운
앱 리뷰
,
영업 시간
및
폐장 후 시간
이벤트를 찾아보세요. 이제 모든 이벤트의 시간과 위치가 제공되므로 그에 따라 적절한 계획을 세울 수 있습니다.
올해부터는
일련의
기조연설 세션
이 새롭게 제공됩니다. 이들 세션에서는 저희가 구축한 기술이 세상에 어떤 영향을 미치는지에 대해 자세히 살펴봅니다! I/O 일정은 이벤트가 시작될 때까지 변경될 수 있으므로 자주 확인하고, 여러분과 다른 개발자들과의 연결과 네트워킹을 돕기 위해 커뮤니티 라운지에서 열리는 예정된 Meetup 이벤트를 주목해 주세요.
원격으로 참석하시나요?
걱정하지 마세요. 귀하는 혼자가 아니고 하나도 놓치지 않을 것입니다! 저희는
대부분의 기조연설과 세션
을 Shoreline에서 라이브로 스트리밍할 것입니다. 자신의 개발자 커뮤니티에서 I/O를 시청하고 싶으시면 가까운 지역에서 열리는
I/O Extended
시청 파티를 찾아보세요.
직접 참석 시
좋아하는 강연에 더욱 쉽게 참석하고 줄 서는 시간을 최소한으로 줄일 수 있도록, 확인된 참석자는 I/O
세션의 좌석을 미리 예약
할 수 있습니다. 단, 2018 이벤트 등록 시에 사용했던 것과 동일한 이메일 주소로 로그인해야 합니다. 일부 좌석은 현장에서 선착순으로 제공됩니다.
좌석을 예약하려면:
google.com/io/schedule
로 이동하여 로그인한 후, 예약하려는 각 세션의 티켓 아이콘을 클릭하세요.
특정 세션의 예약 한도가 이미 초과된 경우에는 그 대신 모래시계 아이콘이 나타납니다. 대기목록에 올라있는데 자리가 생기면, 예약 상태가 자동으로 '예약됨'으로 변경됩니다.
일별로 원하는 수만큼의 세션을 예약할 수 있지만 시간 구간별로 허용되는 예약/대기목록은 하나뿐입니다.
각 세션이 시작되기 1시간 전까지는 예약이 오픈 상태로 유지됩니다.
참고: 예약은 세션에만 가능하며, 일정에 나열된 다른 이벤트에는 불가능합니다.
또한 로그인한 모든 사용자는 일정에 나열된 모든 이벤트 유형에 별표를 추가할 수 있습니다. 그러면 나중에 또는 다른 기기에서 해당 이벤트 유형을 쉽게 찾을 수 있습니다.
현장 게스트는 160개 이상의
기술 및 기조연설 세션
외에도 Android, Assistant, Design, IoT, Web 기타 등등의 제품 분야를 비롯하여 다양한 샌드박스 돔을 둘러볼 수 있는 기회가 있습니다. 샌드박스란 대화식 데모, 물리적 설치 등을 통해 당사의 최신 제품과 플랫폼을 체험하고 배울 수 있는 전용 공간입니다.
또한 100개가 넘는
영업 시간
및
앱 리뷰
이벤트를 이용하실 수도 있습니다. 영업 시간 이벤트에서는 Google 전문가와 일대일로 만나서 모든 기술적인 질문을 할 수 있으며, 앱 리뷰 이벤트에서는 특정 앱 관련 프로젝트에 관한 조언과 팁을 얻을 수 있습니다.
코드랩
의 일정에서 시간을 절약하는 것을 잊지 마세요. 여기에는 스스로 진도를 맞추는 가이드를 통해 Google의 멋진 최신 기술들을 배우는 데 필요한 모든 것이 갖춰져 있으며, 또는 본인의 시스템을 가져와서 작업을 집으로 가져갈 수도 있습니다. 문제가 생기는 경우 Google 직원이 가까이서 유용한 조언과 안내를 해드릴 것입니다.
또한 현장을 다니며 안내해주는
I/O 가이드
를 통해 I/O를 직접 체험하실 수도 있습니다.
I/O가 얼마 남지 않았습니다! 여러분이 올해의 이벤트를 준비하고 최대한 활용하실 수 있도록 다음 주에도 업데이트를 계속 공유하겠습니다. 계속 지켜봐 주세요!
TensorFlow 1.7과 TensorRT를 통합했습니다
2018년 5월 7일 월요일
<블로그 원문은
이곳
에서 확인하실 수 있으며 블로그 번역 리뷰는
신정규(MachineLearning GDE)
님이 참여해 주셨습니다>
게시자:
Laurence Moroney
(Google) 및 Siddarth Sharma(NVIDIA)
오늘 저희는 NVIDIA® TensorRT
TM
와 TensorFlow의 통합을 알려드리고자 합니다. TensorRT는 추론에 맞게 딥 러닝 모델을 최적화하는 라이브러리이자 프로덕션 환경에서 GPU에 배포하기 위한 런타임을 생성하는 라이브러리입니다. TensorRT는 여러 가지 FP16 및 INT8 최적화를 TensorFlow에 적용하며, 추론 중에 GPU에서 처리량을 최대화하고 지연 시간을 최소화하기 위해 플랫폼별 커널을 자동으로 선택합니다. 세계적 수준의 성능으로 TensorFlow 내에서 TensorRT 사용 경로를 단순화해 주는 새로운 통합 워크플로를 발표하게 되어 기쁘게 생각합니다. 저희 테스트에 따르면 ResNet-50은 NVIDIA Volta Tensor Core를 사용하는 TensorFlow-TensorRT 통합에서 TensorFlow 단독 실행 시에 비해 7ms 미만의 지연 시간에 8배 더 빠른 성능을 발휘했습니다.
TensorFlow 내에서 서브그래프 최적화
이제 TensorFlow 1.7에서 TensorRT는 호환되는 서브그래프를 최적화하고 나머지는 TensorFlow가 실행하도록 합니다. 이 접근방식을 사용하면 광범위한 TensorFlow 기능을 사용하여 신속하게 모델을 개발할 수 있으며, 추론 수행 시에 TensorRT를 통해 강력한 최적화가 가능합니다. TensorFlow 모델과 함께 TensorRT를 이미 사용 중인 경우, 아시다시피 지원되지 않는 일부 TensorFlow 레이어를 수동으로 가져와야 했으며, 일부 경우에 많은 시간이 소모될 수 있습니다.
워크플로 관점에서는 TensorFlow의 서브그래프를 최적화하도록 TensorRT에 요청해야 하고 또한 각 서브그래프를 TensorRT 최적화된 노드로 바꾸도록 TensorRT에 요청해야 합니다. 이 단계의 출력은 이전과 같이 TensorFlow에 사용될 수 있는 동결 그래프입니다.
추론 중에 TensorFlow는 지원되는 모든 영역에 대해 그래프를 실행하며, TensorRT 최적화된 노드를 실행하기 위해 TensorRT를 호출합니다. 예를 들어, 그래프에 3개의 세그먼트 A, B, C가 있는 경우 세그먼트 B가 TensorRT에 의해 최적화되어 단일 노드로 바뀝니다. 추론 중에 TensorFlow는 A를 실행한 다음, B를 실행하기 위해 TensorRT를 호출하고, 그런 다음 TensorFlow가 C를 실행합니다.
TensorRT 최적화를 위해 새로 추가된 TensorFlow API는 동결 TensorFlow 그래프를 취하고, 최적화를 서브그래프에 적용하고, 최적화가 적용된 TensorRT 추론 그래프를 TensorFlow로 다시 보냅니다. 아래 코드를 예시로 참조하세요.
# Reserve memory for TensorRT inference engine
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction = number_between_0_and_1)
...
trt_graph = trt.create_inference_graph(
input_graph_def = frozen_graph_def,
outputs = output_node_name,
max_batch_size=batch_size,
max_workspace_size_bytes=workspace_size,
precision_mode=precision) # Get optimized graph
per_process_gpu_memory_fraction 매개변수는 TensorFlow에 사용할 수 있는 GPU 메모리 부분을 정의하며, 그 나머지 부분은 TensorRT에 사용할 수 있습니다. 이 매개변수는 TensorFlow-TensorRT 프로세스가 처음 시작될 때 설정되어야 합니다. 예를 들어, 값 0.67은 GPU 메모리의 67%를 TensorFlow에 할당하고 나머지 33%는 TensorRT 엔진에 할당합니다.
create_inference_graph 함수는 동결 TensorFlow 그래프를 취하고, TensorRT 노드와 함께 최적화된 그래프를 반환합니다. 함수의 매개변수에 대해 살펴보겠습니다.
input_graph_def: 동결 TensorFlow 그래프
outputs: 출력 노드의 이름이 있는 문자열 목록. 예: ["resnet_v1_50/predictions/Reshape_1"]
max_batch_size: 정수, 입력 배치의 크기. 예: 16
max_workspace_size_bytes: 정수, TensorRT에 사용 가능한 최대 GPU 메모리 크기
precision_mode: 문자열, 허용되는 값 "FP32", "FP16" 또는 "INT8"
예를 들어, GPU에 12GB 메모리가 있는 경우 TensorRT 엔진에 ~4GB를 할당하려면 per_process_gpu_memory_fraction 매개변수를 ( 12 - 4 ) / 12 = 0.67로 설정하고
max_workspace_size_bytes
매개변수를 4000000000으로 설정합니다.
새로운 API를 ResNet-50에 적용하고 TensorBoard에서 최적화된 모델이 어떻게 보이는지 알아보겠습니다. 이 예시를 실행하기 위한 전체 코드가 제공됩니다 . 왼쪽 이미지는 TensorRT 최적화가 없는 ResNet-50이고 오른쪽 이미지는 최적화 이후입니다. 이 경우, 그래프의 대부분이 TensorRT에 의해 최적화되어 단일 노드로 바뀝니다(강조 표시됨).
최적화된 INT8 추론 성능
TensorRT는
단정밀도(FP32) 및 반정밀도(FP16)로 훈련된 모델을 취할 수 있으며, INT8 양자화를 사용하여 감소된 정밀도와 최소한의 정확도 손실로 이 모델을 변환하고 배포할 수 있습니다. INT8 모델은 계산 속도가 더 빠르고 대역폭 요구사항은 더 낮지만, 사용 가능한 동적 범위가 감소하기 때문에 신경망의 가중치와 활성화를 표현하는 데 어려움이 있습니다.
동적 범위
최소 양수
FP32
-3.4×1038 ~ +3.4×1038
1.4 × 10−45
FP16
65504 ~ +65504
5.96 x 10-8
INT8
-128 ~ +127
1
이를 해결하기 위해 TensorRT는 FP32 네트워크를 근사화할 때 제한적 8비트 정수 표현으로 정보 손실을 최소화하는 보정 프로세스를 사용합니다.
새로운 통합에서는 TensorRT로 TensorFlow 그래프를 최적화한 후 아래와 같이 보정을 위해 이 그래프를 TensorRT에 전달할 수 있습니다.
trt_graph=trt.calib_graph_to_infer_graph(calibGraph)
추론 워크플로의 나머지 부분은 위에서 변경되지 않은 상태로 유지됩니다. 이 단계의 출력은 앞에 설명한 대로 TensorFlow에 의해 실행되는 동결 그래프입니다.
NVIDIA Volta GPU에서 Tensor Core를 자동으로 사용
추론을 위해 TensorRT는 Volta GPU의 Tensor Core에서 반정밀도 TensorFlow 모델을 실행합니다. Tensor Core는 단정밀도 수학 파이프라인에 비해 8배 더 많은 처리량을 제공합니다. 고정밀도인 FP32 또는 FP64에 비해 반정밀도인 FP16 데이터는 신경망의 메모리 사용량을 줄여줍니다. 이렇게 하면 더 큰 네트워크의 훈련과 배포가 가능하며, FP16 데이터 전송은 FP32 또는 FP64 전송에 비해 시간이 덜 걸립니다.
각 Tensor Core는 D = A x B + C를 수행하며, 여기서 A, B, C, D는 행렬입니다. A 및 B는 반정밀도 4x4 행렬인 반면, D 및 C는 반정밀도 또는 단정밀도 4x4 행렬입니다. V100에서 Tensor Core의 최대 성능은 배정밀도(FP64)에 비해 약 10배 더 빠르고 단정밀도(FP32)에 비해 약 4배 더 빠릅니다.
지원
이번 릴리스에 대해 기쁘게 생각하며, 이 통합을 개선하기 위해 NVIDIA와의 긴밀한 협력을 계속하겠습니다. 이 새로운 솔루션이 TensorFlow의 용이성과 유연성을 유지하면서도 가능한 최고의 성능을 보장해줄 것으로 기대합니다. 또한 TensorRT가 더 많은 네트워크를 지원함에 따라, 코드를 변경하지 않고도 자동 업데이트의 이점을 누릴 수 있게 될 것입니다.
새로운 솔루션을 구하려면, TensorFlow 1.7이 출시된 후에 다음과 같은 표준 pip 설치 프로세스를 사용할 수 있습니다.
pip install tensorflow-gpu r1.7
그 때까지는 여기에서 상세 설치 지침을 찾아보세요:
https://github.com/tensorflow/tensorflow/tree/r1.7/tensorflow/contrib/tensorrt
사용해 보시고 여러분의 의견을 들려주십시오!
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google I/O
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2026
8월
7월
6월
5월
4월
3월
2월
1월
2025
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2024
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed