디지털 라이브러리[ 검색결과 ]
반례 유도 양방향 합성을 조금씩 더해가기로 가속하기
http://doi.org/10.5626/JOK.2023.50.12.1091
반례 유도 방식을 접목한 입출력 예제 기반 합성에는 반례가 추가될 때마다 입출력 예제 기반 합성 과정을 처음부터 다시 시작해야 하는 비효율적인 면이 있다. 이 연구에서는 반례 유도 방식을 접목한 입출력 예제 기반 양방향 합성 알고리즘에 적용할 수 있는 조금씩 더해가기 방식을 제안한다. 이 방식을 적용하면 반례가 추가되었을 때 기존의 탐색 결과를 재활용하여 불필요한 탐색을 줄이고 합성을 가속할 수 있다. 조금씩 더해가기를 통한 성능 개선 효과를 확인하기 위해서, 최근에 제안된 양방향 합성 방법인 정방향-역방향 요약 해석 기반 합성기 Simba에 이 연구에서 제안하는 조금씩 더해가기 방식을 적용하였다. 4가지 종류의 벤치마크에 속한 1,125개의 합성 문제에 대해 기본 알고리즘과 조금씩 더해가기 변형 알고리즘의 성능을 비교 실험한 결과, 합성 결과의 품질을 유지하면서도 합성 시간이 평균적으로 74.2%로 감소하는 것을 확인할 수 있었다.
4세대 CKKS 동형암호 틀을 지원하는 딥뉴럴넷 특화 동형암호 최적화 컴파일러 HedgeHog
이동권, 이계진, 김수찬, 송우성, 이도형, 김훈, 조승한, 박규연, 이광근
http://doi.org/10.5626/JOK.2022.49.9.743
우리는 기존보다 사용하기 쉬운 상위 입력언어를 사용하면서도 결과물 코드의 성능이 뛰어난 새로운 4세대 동형암호 최적화 컴파일러 HedgeHog를 개발하였다. 동형암호 기술은 그 유용성에도 불구하고 동형암호에 대한 전문지식이 없는 사용자의 입장에서는 직접 성능 좋은 동형암호 코드를 작성하는 것이 매우 어렵기 때문에, 상위 입력언어를 동형연산 코드로 자동변환해주는 동형 컴파일러 기술의 중요도는 매우 높다. 하지만 대부분의 기존 동형 컴파일러들은 4세대 이전의 동형암호 틀을 기반으로 하여 실수연산을 지원하지 못하기 때문에 뉴럴넷이나 통계분석 등의 분야에 쓰일 수는 없는 실정이다. 또한 4세대 동형암호 틀을 기반으로 하는 기존 동형 컴파일러들도 덧셈, 곱셈 등의 하위 연산자들을 기반으로 한 입력언어를 사용하고 있기에 뉴럴넷 모델 등의 상위 프로그램을 기술하기 어렵다는 단점이 있고, 이 과정에서 불필요한 연산자들이 사용되어 비효율적인 결과물 코드를 생성할 위험성이 높다. 우리는 이러한 문제를 해결하기 위해 뉴럴넷 핵심 상위 연산자를 포함하는 입력언어 코드를 동형연산 코드로 자동변환해주는 최적화 컴파일러 HedgeHog를 개발하였다. HedgeHog는 기존 최고수준 4세대 동형 컴파일러인 EVA에 비해 최대 22%의 성능향상을 보인다.
데이터 기반 경로 선별을 통한 상용 정적분석기의 성능 향상 방법
http://doi.org/10.5626/JOK.2019.46.4.363
데이터에 기반한 경로 선별을 통해 상용 정적분석기의 성능을 높이는 방법을 제안한다. 경로에 민감한(path-sensitive) 분석은 상용 정적분석기가 일반적으로 채택하는 기법이며, 어떤 경로를 골라 분석하느냐에 따라 분석비용과 검출하는 오류 수가 달라진다. 이 논문은 손수 튜닝된 경로 선별 휴리스틱을 장착한 기존 상용 정적분석기로부터 비용 대비 효과가 좋은 새로운 경로 선별 휴리스틱을 자동으로 학습하는 방법을 제안한다. 분석기 코드에서 추출한 특징(feature)과 벤치마크 프로그램의 분석결과에 기대어 학습한다. 이 방법을 스패로우(Sparrow)의 상용 C 소스코드 정적분석기와 17개의 C 오픈소스 벤치마크에 적용한 결과, 대표적인 17종 대상오류에 대해 기존 분석 대비 90.8%의 오류를 38%의 분석시간에 검출할 수 있었다. 이는 기존 분석기의 경로 선별 휴리스틱을 따르되 탐색하는 경로의 개수만 유사한 조건으로 제한했을 때보다 더 많은 오류를 더 짧은 시간에 검출한 것이다.