Skip to content

Instantly share code, notes, and snippets.

@dan-zheng
Created January 2, 2019 21:36
Show Gist options
  • Save dan-zheng/09ab5f5e77d6fc47b37c483e97685dec to your computer and use it in GitHub Desktop.
Save dan-zheng/09ab5f5e77d6fc47b37c483e97685dec to your computer and use it in GitHub Desktop.
Swift AD retain/release error (reported at https://github.com/apple/swift/pull/21577#issuecomment-450963928)
import TensorFlow
struct Model: Parameterized, Differentiable {
@TFParameter var w: Tensor<Float>
func tangentVector(from cotangent: Parameters) -> Parameters {
return cotangent
}
}
let model = Model(w: Tensor<Float>(zeros: [5]))
let pb = pullback(at: model) { m in m.w }
print(pb(Tensor<Float>(zeros: [5])))
swift -Xllvm -tf-dynamic-compilation crash.swift
Stack dump:
0. Program arguments: /Users/dan/swift-dev/build/Ninja/swift-macosx-x86_64/bin/swift -frontend -interpret crash.swift -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -Xllvm -tf-dynamic-compilation -color-diagnostics -module-name crash
0 swift 0x0000000114516208 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 swift 0x0000000114515485 llvm::sys::RunSignalHandlers() + 85
2 swift 0x0000000114516812 SignalHandler(int) + 258
3 libsystem_platform.dylib 0x00007fff5882ab3d _sigtramp + 29
4 libsystem_platform.dylib 0x00007ffee0bb2ef8 _sigtramp + 2285405144
5 libswiftCore.dylib 0x0000000128fc1a8f swift::HeapObjectSideTableEntry::incrementStrong(unsigned int) + 31
6 libswiftCore.dylib 0x0000000128fc1a52 swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::incrementSlow(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) + 274
7 libswiftCore.dylib 0x0000000128f36009 swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::increment(unsigned int) + 313
8 libswiftCore.dylib 0x0000000128f2f450 _swift_retain_(swift::HeapObject*) + 64
9 libswiftCore.dylib 0x0000000128f2f404 swift_retain + 36
10 libswiftCore.dylib 0x0000000128f4bfa5 swift::metadataimpl::SwiftRetainableBox::retain(swift::HeapObject*) + 21
11 libswiftCore.dylib 0x0000000128f4bf7c swift::metadataimpl::RetainableBoxBase<swift::metadataimpl::SwiftRetainableBox, swift::HeapObject*>::initializeWithCopy(swift::HeapObject**, swift::HeapObject**) + 28
12 libswiftCore.dylib 0x0000000128f46544 swift::metadataimpl::ValueWitnesses<swift::metadataimpl::SwiftRetainableBox>::initializeWithCopy(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) + 36
13 libswiftCore.dylib 0x0000000128f1a24c swift::OpaqueValue* swift::TargetMetadata<swift::InProcess>::vw_initializeWithCopy<swift::OpaqueValue*&, swift::OpaqueValue*&>(swift::OpaqueValue*&, swift::OpaqueValue*&) const + 76
14 libswiftCore.dylib 0x0000000128f62a48 swift::metadataimpl::OpaqueExistentialBox<0u>::Container* swift::metadataimpl::OpaqueExistentialBoxBase::initializeWithCopy<swift::metadataimpl::OpaqueExistentialBox<0u>::Container>(swift::metadataimpl::OpaqueExistentialBox<0u>::Container*, swift::metadataimpl::OpaqueExistentialBox<0u>::Container*) + 120
15 libswiftCore.dylib 0x0000000128f627b4 swift::metadataimpl::ValueWitnesses<swift::metadataimpl::OpaqueExistentialBox<0u> >::initializeWithCopy(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetMetadata<swift::InProcess> const*) + 36
16 libswiftCore.dylib 0x0000000128b35ee8 $ss22_ContiguousArrayBufferV10getElementyxSiF + 520
17 libswiftCore.dylib 0x0000000128a794a9 $ss22_ContiguousArrayBufferVyxSicig + 41
18 libswiftCore.dylib 0x0000000128a7d440 $ss12_ArrayBufferV10getElement_20wasNativeTypeCheckedxSi_SbtF + 208
19 libswiftCore.dylib 0x0000000128a82a26 $sSa11_getElement_20wasNativeTypeChecked22matchingSubscriptCheckxSi_Sbs16_DependenceTokenVtF + 118
20 libswiftCore.dylib 0x0000000128a834b6 $sSayxSicig + 134
21 libswiftCore.dylib 0x0000000128a852fa $sSayxGSlsSly7ElementQz5IndexQzcigTW + 26
22 libswiftCore.dylib 0x0000000128a5c799 $ss16IndexingIteratorV4next7ElementQzSgyF + 1097
23 libswiftCore.dylib 0x0000000128cdfc3f $ss6_print_9separator10terminator2toySayypG_S2Sxzts16TextOutputStreamRzlF + 591
24 libswiftCore.dylib 0x0000000128cdf9dc $ss5print_9separator10terminatoryypd_S2StF + 828
25 libswiftCore.dylib 0x0000000125d3e35e $ss5print_9separator10terminatoryypd_S2StF + 4245023934
26 swift 0x000000010fc1e11d llvm::MCJIT::runFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>) + 461
27 swift 0x000000010fc21ae1 llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, char const* const*) + 1313
28 swift 0x000000010f215fb0 swift::RunImmediately(swift::CompilerInstance&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, swift::IRGenOptions&, swift::SILOptions const&) + 8848
29 swift 0x000000010f16d46a processCommandLineAndRunImmediately(swift::CompilerInvocation&, swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::FrontendObserver*, int&) + 1370
30 swift 0x000000010f1455af performCompileStepsPostSILGen(swift::CompilerInstance&, swift::CompilerInvocation&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, bool, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, bool, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 5551
31 swift 0x000000010f137799 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 2665
32 swift 0x000000010f134f27 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 5063
33 swift 0x000000010f051ef5 run_driver(llvm::StringRef, llvm::ArrayRef<char const*>) + 917
34 swift 0x000000010f050702 main + 3730
35 libdyld.dylib 0x00007fff5864108d start + 1
36 libdyld.dylib 0x000000000000000c start + 2812014464
[1] 26069 segmentation fault ./build/Ninja-KeyPathIterable/swift-macosx-x86_64/bin/swift -Xllvm
$ ./build/Ninja/swift-macosx-x86_64/bin/swift crash.swift
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
<unknown>:0: warning: value implicitly copied to the host, use .toHost() to make transfer explicit
<unknown>:0: error: located in static Model.Parameters.__derived_struct_equals(_:_:) aka '$s5crash5ModelV10ParametersV23__derived_struct_equalsySbAE_AEtFZ'
<unknown>:0: warning: value implicitly copied to the accelerator, use .toAccelerator() to make transfer explicit
# Note: with GPE, you can reliably expect derived `==` implementations to cause such errors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment